Published on

터미널에서 사용하는 github 명령어

Authors
  • avatar
    Name
    JeongYun Lee

오랫동안 깃헙 웹 사이트로 데이터를 올리고 수정하거나 github desktop을 사용했었는데, vscode로 점점 더 많은 수정할 것들이 생기니 터미널을 사용하는 것이 훨씬 편리하다는 것을 알게되었다. 자주 사용하지만 그래도 자꾸 까먹는 깃헙 터미널 명령어들을 기록해 둔다.

1. git clone

git clone [레포 경로]는 원하는 레포를 로컬에 저장하고 싶을 때 사용한다.

2. git checkout

git checkout [브랜치 이름] 브랜치 생성은 그냥 웹에서 해도 편하다. git checkout -v를 하면 현재 연결된 브랜치를 확인할 수 있다. 가끔 웹에서 생성한 브랜치가 보이지 않는다면 git remote update을 해주면 정상적으로 나올 것이다.

3. git pull origin main

git pull origin main 습관화할 것!! 해당 레포의 main을 불러온다. 협업해서 코드를 수정할 때, main을 가져오지 않고 내 것만 푸시해서 머지하면 상대방이 수정한 것이 날아갈 수도 있다...(잦은 경험...) 꼭 main을 pull 하고, 만약 내가 수정한 것과 이미 conflict가 난다면 push 후에 꼭 상대의 수정 사항등을 확인해준다.

4. push 스텝

push 할 때는 다음과 같은 순서를 꼭 따른다. git pull origin main을 해서 main을 가져왔다고 가정했을 때,

  1. git add . 수정한 내용 전체를 가져오는 코드
  2. `git commit -m "간단한 commit message" 작성 수정한 내용에 대한 간단한 설명 작성 (나중에 revert 하거나 에러 확인할 때 어느 부분인지 알기 위해서 직관적으로 적어주는 것이 좋음)
  3. git push main에 수정한 내용 push 하기

5. pull request & merge 스텝

위 4번 스텝을 차례로 진행한 뒤, github 웹 사이트의 해당 레포로 돌아온다. push한 브랜치에 들어가서 contribute 버튼을 눌렀을 때 'open pull request' 버튼이 활성화 된다면 제대로 push 된 것이다. 아래는 push 한 것이 없어서, 즉 main과 브랜치가 동일해서 버튼 활성화가 안된 상태이다.
open-pull-request 이후 pull request를 실행하고 잠깐의 로딩 후, merge 버튼이 활성화되면서 보라색으로 바뀐다. 이때 conflict라는 에러가 나면 resolve conflict 버튼이 활성화되는데, 여기로 들어가서 충돌나는 코드를 고쳐주고 (이 부분에 대한 설명은 불가... conflict나는 코드를 하나씩 보면서 지워나가는 방법 밖에 없기 때문에!) merge를 하면 되고, 충돌이 안난다면 그냥 merge 해주면 된다.

merge 후 다시 vscode로 돌아와서 git pull origin main 했을 때 'Fast-forward' 라고 뜨면 정상적으로 main에 반영된 것이다.

6. 사용하고 있는 브랜치를 main으로 덮어 쓰고 싶은 경우

가끔 수정하다가 돌이킬 수 없는 경우가 되었을 때 (=망했을 때) 그냥 main으로 브랜치를 덮어쓰고 싶은 경우가 생긴다. 아래의 스텝에 따라서 진행하면 깔끔하게 덮어쓸 수 있다.

  1. git fetch origin
  2. git reset --hard main
  3. git pull origin main