Articles 2019/08/03 14:42

Git Tag

아래 내용은 Git Book V2를 참고하여 작성했습니다.
Git Tag에 대한 자세한 내용은 Git Book을 참고하세요.

태그는 일반적으로 제품의 Release 계획에 사용됩니다.
제품에 명시되어 있는 버전 정보가 바로 Release에 사용된 태그입니다.
Git Tag Command 사용 방법은 다음과 같습니다.

Tag 조회

이미 만들어진 태그가 있는지 다음과 같이 조회할 수 있습니다.

git tag -l

특정 문자열을 포함하고 있는 Tag를 조회할 경우에는 다음과 같이 조회합니다.

git tag -l "v.1.*"

Tag 추가

Git의 태그에는 Annotated Tag 와 Lightweight Tag 2가지 종류가 있습니다.

Annotated Tag

Annotated Tag는 Git Database에 태그를 만드는 사람의 이름, 이메일, 태그 생성 일자, 태그 메시지 등을 저장합니다. GPG(GNU Private Guard)로 서명할 수도 있습니다.
일반적으로, Annotated Tag를 사용하여 모든 정보를 저장하는 것이 좋습니다.
Annotated Tag는 -a를 추가하여 다음과 같이 사용할 수 있습니다.

git tag -a v1.4 -m "version 1.4 tag"

-m 옵션을 통해서 메시지를 함께 저장할 수 있습니다.

다음과 같이 git show를 이용하여 Tag 정보와 Commit 정보를 모두 확인할 수도 있습니다.

git show v1.4

Lightweight Tag

Lightweight Tag는 Git의 Branch와 비슷합니다.
하지만, Branch와는 다르게 가리키는 지점을 최신 commit 위치로 이동시키지 않습니다.
단순히 특정 commit에 대해 가리키는 포인터 역할을 하며 파일에 commit checksum을 저장하는 것 뿐입니다.
Lightweight Tag는 -a, -s, -m 옵션을 사용하지 않고, 단지 이름만 붙입니다.

git tag v1.4-test

git show를 이용하여 commit 정보를 확인할 수 있습니다.

기존 commit에 대한 Tag 추가

예전에 개발하여 commit한 소스 코드에 대해서도 나중에 tag를 추가할 수 있습니다.
다음과 같은 순서로 기존 commit에 tag를 추가합니다.

  1. commit history 조회

    git log --pretty=oneline
  2. 특정 commit에 tag 추가
    tag 추가 명령의 끝에 checksum을 명시합니다.

    git tag -a v.1.0 checksum -m "added comment"

    checksum은 긴 checksum을 모두 적지 않고 앞자리 일부만 명시합니다.

  3. Tag 확인

    git tag # tag list 조회 git show v.1.0 # tag를 추가한 commit 조회

Tag 공유

git push 명령은 자동으로 tag 정보를 원격 저장소에 전송하지 않습니다.
branch를 공유하는 방법과 동일하게 tag는 별도로 원격 저장소에 push해야 합니다.

다음과 같이 수행할 수 있습니다.

git push {remote name} {tag name} > ex) git push origin test

--tags 옵션을 추가하여 원격 저장소에 없는 모든 tag들을 한 번에 전송할 수 있습니다.

git push origin --tags

향후, 다른 개발자가 원격 저장소에서 해당 프로젝트를 git pull하거나 git clone하는 경우 tag까지 모두 받을 수 있습니다.

Tag Checkout

특정 버전을 명시한 Tag가 붙어 있는 파일만을 checkout하여 확인하고 싶을 경우, 다음과 같이 실행할 수 있습니다.

git checkout v1.2

tag를 git checkout하는 경우, "detached HEAD" 상태가 되어 기존 branch에서 떨어져 나오게 됩니다.
이후 일부 git 작업이 기존 branch와 다르게 동작할 수 있습니다.
따라서, checkout한 상태에서 새로 작성한 commit이 의미가 있게 하기 위해서는 반드시 별도의 branch로 작업하는 것이 좋습니다.

2019/08/03 14:42 2019/08/03 14:42

Trackback Address : http://www.yongbi.net/trackback/854

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Articles 2019/07/18 13:48
Telnet Client가 설치되어 있지 않은 경우, 먼저 telnet 설치
yum -y install telnet
방화벽이 열려 있지 않은 경우
telnet ip_address port_number
---> Connection timed out
방화벽은 열려 있으나, 해당 포트 서비스가 안 떠 있는 경우
telnet ip_address port_number
---> Connection refused
방화벽도 열려 있고, 서비스도 떠 있는 경우
telnet ip_address port_number
---> Connected to ip_address
---> Escape character is '^]'.

2019/07/18 13:48 2019/07/18 13:48

Trackback Address : http://www.yongbi.net/trackback/851

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Articles 2019/07/11 14:46
1. JDK && Git Client 설치
yum install java-1.8*
java -version
yum install git
git --version
2. 방화벽 설정
yum list installed | grep firewalld
설치되어 있지 않을 경우,
yum install -y firewalld

<서비스 등록>
systemctl unmask firewalld
systemctl enable firewalld
systemctl start firewalld

<방화벽 등록>
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --reload
3. Maven / Gradle 설치
mkdir /tools
cd /tools

<Maven Download>
wget http://mirror.navercorp.com/apache/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
tar xzvf apache-maven-3.6.1-bin.tar.gz
ln -s apache-maven-3.6.1 maven

<Maven ENV Setting>
vi /etc/profile.d/maven.sh

export MAVEN_HOME=/tools/maven
export PATH=${MAVEN_HOME}/bin:${PATH}

source /etc/profile.d/maven.sh
mvn -version

<Gradle Download>
wget --no-check-certificate https://services.gradle.org/distributions/gradle-5.4.1-bin.zip
unzip gradle-5.4.1-bin.zip
ln -s gradle-5.4.1 gradle

<Gradle ENV Setting>
vi /etc/profile.d/gradle.sh

export GRADLE_HOME=/tools/gradle
export PATH=${GRADLE_HOME}/bin:${PATH}

source /etc/profile.d/gradle.sh
gradle -v
4. Jenkins 설치
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
yum install -y jenkins

<Jenkins Default Port Setting>
vi /etc/sysconfig/jenkins
JENKINS_PORT="8080"

<Jenkins Operation>
Start : service jenkins start
Stop : service jenkins stop
Restart : service jenkins restart
5. Jenkins 실행
Web Browser에서 http://localhost:8080 접속

<Initial Admin Password>
view /var/lib/jenkins/secrets/initialAdminPassword

<Error Case>
Admin 로그인 후, This Jenkins instance appears to be offline 일 경우,

vi /var/lib/jenkins/hudson.model.UpdateCenter.xml
<url>https://updates.jenkins.io/update-center.json</url> 에서 https -> http로 변경

<Jenkins Restart>
service jenkins restart


2019/07/11 14:46 2019/07/11 14:46

Trackback Address : http://www.yongbi.net/trackback/850

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Articles 2019/07/08 19:56
계정 추가 : adduser
계정 수정 : usermod
계정 삭제 : userdel
1. sudo 권한 부여
vi /etc/sudoers
root    ALL=(ALL)    ALL 아래에 다음 내용 추가
계정명    ALL=(ALL)    ALL
2. root 그룹 부여
vi /etc/group
root:x:0: ----> root:x:0:계정명
3. uid, gid 값을 root 값으로 변경
vi /etc/passwd
계정명:x:uid:gid::/home/계정명:/bin/bash --------> 계정명:x:0:0::/home/계정명:/bin/bash
4. SSH Config 수정
vi /etc/ssh/sshd_config
PermitRootLogin = prohibit-password | without-password | no 일 경우,
PermitRootLogin yes 로 변경
5. Service 재 시작
service sshd restart



2019/07/08 19:56 2019/07/08 19:56

Trackback Address : http://www.yongbi.net/trackback/849

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Articles 2019/07/08 11:45
1. PostgreSQL Installation by using yum
yum install -y postgresql9.6*
2. Initialize Database
/usr/pgsql-9.6/bin/postgresql96-setup initdb
3. Service Registry on System Boot
systemctl start postgresql-9.6
systemctl enable postgresql-9.6
4. Edit Configurations
vi /var/lib/pgsql/9.6/data/pg_hba.conf
    host    all             all              127.0.0.1/0               md5
    host    all             user                       0.0.0.0/0                  md5
vi /var/lib/pgsql/9.6/data/postgresql.conf
   listen_address = '*'
5. Service Restart
systemctl restart postgresql-9.6

2019/07/08 11:45 2019/07/08 11:45

Trackback Address : http://www.yongbi.net/trackback/848

[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다