Git 기초 습득하기 2
깃 이그노어, 브랜치, 병합(merge) 등 Git의 기초적인 부분을 습득합니다.
Git은 버전 관리 시스템으로, 소프트웨어 개발에서 코드의 변경 사항을 관리하고 추적하는데 필수적인 도구입니다. 이 글에서는 Git의 기본 개념과 명령어를 알아보겠습니다. 지난시간에 이어 이번 게시물 학습내용입니다.
- 깃 이그노어 설정에 대해 파악합니다.
- 브랜치 관리와 병합에 대해 파악합니다.
- 로컬저장소와 원격저장소를 연결하는 방법을 파악합니다.
- 추가적으로 Git 사용에 유용한 리눅스 명령어와 Git alias 설정을 파악합니다.
깃 이그노어(.gitignore) 설정
.gitignore
파일은 Git이 특정 파일이나 디렉토리를 추적하지 않도록 설정하는데 사용됩니다.
- 깃 이그노어를 설정할 프로젝트에
.gitignore
파일을 생성합니다.1
$ echo [무시할 확장자 혹은 파일] > .gitignore
1
$ echo "*.log" > .gitignore
위 명령어는 모든
.log
파일을 무시하도록(추적하지않도록) 설정합니다.
이그노어 내용 추가시 echo [파일]>>
.gitignore 명령어를 사용합니다.>>
는 덮어쓰기 입니다. .gitignore
파일을 Git에 추가하고 커밋합니다.1 2
$ git add .gitignore $ git commit -m "Add .gitignore file"
- (원격 저장소 사용시) 변경 사항을 원격 저장소에 푸시
1
$ git push
특정사이트를 활용하여
gitignore
초기설정을 간편하게 만들수도 있습니다.
브랜치(branch)
브랜치(branch)는 기존코드를 통째로 복사하여 원래 코드와는 상관없이 독립적인 작업을 가능하게 해주는 Git의 기능입니다. 브랜치를 통해 여러 개발자들이 동시에 작업할 수 있는 환경을 구축합니다.
깃 프로젝트가 처음 생성되면master
혹은main
이름으로 기본 브랜치가 생성됩니다. 이를 다른 브랜치(branch)로 격리(복사)하여 안전하게 개발작업을 수행할 수 있습니다. 이후 개발이 완료되면 상위 브랜치로 병합합니다.
- 브랜치 목록 확인
1
$ git branch
- 새로운 브랜치 생성 (기존 브랜치의 복사본)
1
$ git branch [브랜치이름]
- 브랜치 이동
1
$ git checkout [브랜치이름]
- 브랜치 생성과 동시에 이동
1
$ git checkout -b [브랜치이름]
- 브랜치 삭제
1
$ git branch -d [브랜치이름]
- 브랜치 관리 방안 : 브랜치는 협업을 목적으로 사용될 수 있습니다. 통상적으로 사용되는 브랜치명에 익숙해지면 향후 협업시 원활한 커뮤니케이션을 진행할 수 있습니다. 주로 사용되는 브랜치는 다음과 같습니다. 메인 브랜치는 지속적으로 사용되는 브랜치이며, 보조 브랜치는 사용이 필요한 순간에만 생성하여 사용후 삭제합니다.
- 메인 브랜치
master
혹은main
: 제품 출시 버전develop
: 다음 출시 버전 개발
- 보조 브랜치
feature
: 특정 기능 개발release
: 출시 준비hotfix
: 출시버전에서 발생한 버그 수정
- 개발(프로젝트)시 브랜치 흐름 예시
master
→develop
브랜치 이동후 개발- 특정 기능 필요시
feature
브랜치에서 개발 - 기능을 완성하면
feature
→develop
브랜치로 병합후feature
브랜치 제거 - 릴리즈 단계시
develop
→realease
브랜치 이동후 개발 - 최종 릴리즈 단계시
realease
→develop
,master
병합후realease
브랜치 제거 master
브랜치 오류발생시hotfix
브랜치 생성hotfix
완료시develop
,master
브랜치로 병합후hotfix
브랜치 제거
- 메인 브랜치
병합(merge)
병합(merge)은 서로 다른 브랜치의 변경 사항을 하나로 합치는 과정입니다. 병합을 통해 각자 프로젝트 역할을 분담하여 개발을 진행하고 합칠 수 있습니다.
- 브랜치 병합 : 현재 브랜치에 다른 브랜치의 내용을 병합합니다.
1
$ git merge [브랜치이름]
현재 브랜치가
master
라면,master
브랜치에feature-branch
브랜치를 병합(merge)합니다.1
$ git merge [feature-branch]
- 브랜치를 병합전에 브랜치 간 변경 사항을 비교할 수 있습니다.
1
$ git diff [현재브랜치] [비교브랜치]
로컬저장소와 원격저장소 연결
Github와 같은 원격저장소를 사용하면 로컬저장소와 원격저장소를 자유롭게 공유할 수 있습니다. 향후 협업이 필요할 때 깃허브 등의 원격저장소를 사용하여 협업을 진행할 수 있습니다. 다른 원격저장소도 가능하지만 깃허브 원격저장소를 예시로 사용하겠습니다. 깃허브 계정이 없는경우 가입을 해야 깃허브 원격저장소를 사용할 수 있습니다.
- 로컬저장소에서 원격저장소로 보내기
Github
→Repositories
→New
를 클릭하여 원격저장소를 생성합니다.Repository name
에 원격저장소 이름을 작성한 후Create repository
클릭합니다.<> Code
버튼을 눌러URL
을 복사합니다.- 로컬저장소 터미널에서
remote
명령어를 입력합니다.URL
을원격저장소주소
에 붙여넣습니다. 통상적으로원격저장소이름
은origin
으로 사용되고있습니다. 해당 명령어는 현재 프로젝트에 원격저장소를 등록하고, 이름(별칭)을 붙입니다.1
$ git remote add [원격저장소이름] [원격저장소주소]
- 향후 로컬에서 변경사항(커밋)이 발생시
push
하여 원격저장소로 전송합니다.1
$ git push
처음
push
를 사용할경우, 터미널에서 어디브랜치로 푸시해야하는지 물어볼 수 있습니다. 그럴경우 다음과 같이 정확히 내가 어느저장소에 어느브랜치에 연결을 할것을 명시해야 합니다.1
$ git push -u [원격저장소이름] [보내고싶은브랜치]
- 원격저장소에서 로컬저장소로 깃 가져오기
- 원격저장소에서
<> Code
버튼을 눌러URL
을 복사합니다. - 로컬저장소 터미널에서
clone
명령어를 통해 원격저장소를 복사합니다.1
$ git clone [원격저장소주소]
pull
명령어를 통해 원격저장소의 변경사항을 로컬저장소에 가져옵니다.1
$ git pull
- 원격저장소에서
- 현재 프로젝트에 등록된 원격저장소 확인
1
$ git remote -v
- fetch : 원격저장소 내용을 내려받을 주소입니다.
- push : 로컬저장소 내용을 원격저장소에 올릴 주소입니다.
기타 유용한 기능
추가적으로 Git 사용시 알아두면 편한 리눅스 명령어와 깃 alias 설정에 대해 알아보겠습니다.
- 알아두면 편한 리눅스 명령어
Git은 리눅스 명령어를 사용하기에 알아두면 유용한 명령어 몇가지를 소개합니다.
- 파일 목록 확인 :
-al
옵션 사용시, 숨겨진 폴더와 파일까지 확인합니다.
1
$ ls
1
$ ls -al
- 파일 목록 확인 :
- 문서 생성
1
$ touch [문서명.확장자]
- 디렉토리 이동 :
..
입력시, 상위 디렉토리로 이동합니다.1
$ cd [디렉토리명]
- 파일 열기(터미널)
1
$ nano [파일]
- 파일 열기(운영체제)
1
$ open [파일]
- 파일 생성 :
>
입력시 기존파일이 있는경우 덮어쓰고,>>
입력시 내용을 추가합니다.1
$ echo [내용] > [파일]
- (추천) 깃 alias 설정
alias는
별명
이라는 뜻으로 프로그램에서는 어떤 명령 혹은 명령어 집합, 프로세스를 새로운 별명으로 대신하는 기능을 말합니다.Git
에서 자주 혹은 유용하게 사용하는 일부 명령어를alias
설정하여 편의성을 높이고자 합니다. 취향에 맞게 설정할 수 있습니다.st
: 깃 상태 확인1
$ git config --global alias.st 'status -st'
last
: 마지막 커밋 확인1
$ git config --global alias.last 'log -1 HEAD --stat'
co
: 브랜치 이동1
$ git config --global alias.co 'checkout'
cob
: 브랜치 생성후 해당브랜치로 이동1
$ git config --global alias.cob 'checkout -b'
정리
지금까지 Git에 대해 기초적인 부분을 정리했습니다. Git을 사용하면 코드 변경 사항을 효율적으로 관리할 수 있으며, 원활한 협업을 수행할 수 있습니다. 두차례 설명한 Git의 기본 개념과 명령어들을 익히고 활용해보시길 바랍니다.