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의 기본 개념과 명령어들을 익히고 활용해보시길 바랍니다.