프로그래밍 언어/Shell

현업에서 자주 쓰이는 git 명령어 정리

트리맨스 2021. 9. 3. 00:44
반응형

 

git은 좋은 코드 버전 관리 도구이다. 공동 작업을 github를 이용하여 자주 하다보니 처음에는 모르는 것도 많고 실수 투성이였으나, 시간이 지날수록 git은 좋은 도구라는 것을 알게 되었다. git을 사용하면서 유용했던 cli 명령어를 정리해 보았다.

 

저장소 관련 명령어


git을 사용할려면 해당 프로젝트의 최상위 폴더에다 git 설정을 해 주어야 한다. git에 관한 설정이 들어있는 폴더는 .git 이다. 다음과 같은 명령어를 통해 git 저장소를 새로 만들어 보자.

 

1
2
3
4
git init
git branch -M main
git remote add origin [remote 저장소의 ssh 주소]
git push --set-upstream origin master
cs

 

근데 사실 이런거 하는것보다 github에 저장소 하나 만들고 git clone [remote 저장소의 ssh 주소] 하는 것이 훨씬 편하다. 이렇게 저장소 클론하자.

 

 

커밋과 푸쉬, 풀


git은 코드 버전을 관리하고, 에러를 추적하는 좋은 도구이다. 이걸 개발한 리누스 토발즈는 확실한 재능충임에 틀림없다. 여튼 만약에 혼자 git을 사용하는 경우라면 커밋과 푸쉬, 풀 정도만 있으면 잘 사용할 수 있을 것이다. 커밋은 변한 코드에 대한 설명과 변한 코드에 대한 정보, 푸쉬는 원격 저장소로 업로드하기, 풀은 원격 저장소에서 불러오기 정도가 될 것이다. 

 

커밋은 변한 코드에 대한 정보가 담겨있기에 git add 명령어로 커밋할 파일들을 추가한다. 이 때 add가 된 파일들은 다른 branch로 이동해도 파일이 옮겨가지 않는다. 그리고 커밋할 내용에 #[issue number] 를 적게 되면 해당 번호에 해당하는 이슈로 바로가기가 된다. 나중에 협업할 때 매우 유용하다.

 

1
2
3
4
5
6
git add [커밋할 파일]
git commit -"커밋할 내용"
 
git push origin [branch 명]
 
git pull origin [branch 명]
cs

 

 

협업 시 필요한 기능 및 명령어


협업을 하기 시작하면 깃허브의 위력이 발휘된다. 이와 동시에 알아야 할 규칙들도 많아지는 편이다. 

 

자신이 작성한 코드를 관리하기 위해서는  branch라는 것을 사용하게 된다. 다른 사람이 코딩하던 공간과 다른 공간을 만들어 그곳에서 작업을 하는 것이다.

 

주로 사용하는 흐름은 다음과 같다. 

 

1. 버그 발생

2. issue 생성

3. master branch에서 새 branch 생성 (bug-fix 라고 하자)

4. bug-fix branch에서 오류를 고치고 커밋을 한다.

5. git pull origin bug-fix 를 통해 원격 저장소의 branch에 push한다.

6. 깃허브 사이트에서 master branch로 PR을 만든다.

7. master branch 관리자가 코드 검수 후 merge를 한다. 

8. issue 삭제

9. 로컬에 남아있는 bug-fix branch 삭제한다. 해당 버그는 고쳤으므로 필요 없기 때문이다.

 

1
2
3
4
5
6
7
8
9
10
11
# 로컬 branch 목록
git branch
 
# branch 생성
git branch [이름]
 
# branch 이동하기
git checkout [이름]
 
# branch 삭제하기 (강제로)
git branch -D [이름]
cs

 

 

원격 저장소의 branch 가져오기


원격 저장소의 branch들을 가져와 로컬에 환경을 복사할 수 있다.

 

1
2
git remote update
git checkout -t [원격 저장소의 branch 이름]
cs

 

 

issue 추가 및 pull request


만약 현재 코드에 문제가 발생하고 이를 해결하기 위한 전체 작업이 필요하다고 하자. 문제가 발생하면 github 사이트에서 issue를 추가할 수가 있다. issue number 는 #number 형태가 되며, 커밋을 할 때 #issue_number (예 : #12) 를 추가하게 되면 커밋 메시지에서 바로 해당 issue로 이동할 수 있다.

 

버그를 수정한 코드를 잠시 파둔 branch에 push 한 후에, 이 코드를 main(master) 코드에 적용 시켜야 한다. 이 때는 pull request를 이용하여 (PR 이라고 하기도 함) 업데이트한다. PR에는 코드 검수 결과를 자주 적기도 한다. PR은 깃허브 홈페이지에서 만들 수 있다. PR을 요청하면 상위 관리자가 PR의 내용을 확인한 후에 수락할지 거절할지 정할 수 있다.

 

 

수정 중이던 파일 유지하면서 branch 변경하기


새 branch에서 작업한 내용을 커밋 없이 다른 branch로 옮기고 싶을 수 있다. 새로 작성한 파일을 커밋을 하지 않게 되면 branch가 바뀔 때마다 같이 이동하게 된다. 이럴 때는 stash 명령어를 통해 잠시 저장할 수 있다.

 

1
2
3
4
git stash
# 브렌치 이동 후 다시 원래 브렌치로 돌아옴
git stash list # 임시 저장한 리스트 불러오기
git stash apply [id] # 임시 저장한 내용 
cs

 

 

원격 저장소의 branch 삭제하기


원격 저장소는 origin 태그를 붙여 관리한다. 

예) 원격 저장소의 tree branch 삭제하기

git push remote --delete tree

 

반응형