[Git / Github] 맨날 잊어버리는 깃 명령어를 정리하자

Hocaron·2022년 2월 18일
0

Git / Github

목록 보기
2/2

지금 작업하고 있는 브랜치 이름으로 올리고 싶을 때

$ git push --set-upstream origin <지금 작업하고 있는 브랜치>

매번 브랜치를 생성할 때마다 저 문구를 붙여 넣는 작업을 거쳐야 하기는 너무 번거롭다면?
$ git config --global push.default current

🚨 로컬 브랜치와 리모트 브랜치 간의 추적이 설정되지 않으므로, git pull 동작하지 않는다.
해결하기 위해선 리모트 브랜치에 동일한 이름으로 브랜치를 생성하고 추적을 설정해야 한다.
$ git push -u

다른 브랜치에 있는 커밋을 현재 작업하고 있는 브렌치로 가져오고 싶을 때

가져오려는 커밋 해시 확인
$ git log

현재 작업하고 있는 브랜치로 이동
$ git checkout <커밋을 가져오고 싶은 브랜치>

현재 작업하고 있는 브랜치로 이동
$ git cherry-pick <커밋 해시>

🚨 cherry pick 했는데, conflict가 났다면?

  1. Conflict 해결하기 위해 코드를 수정한다.
    $ git add <path>
    $ git cherry-pick -continue

  2. cherry-pick을 중단한다. cherry-pick을 실행하기 전 상황으로 코드가 돌아간다.
    $ git cherry-pick -abort

커밋을 되돌리고 싶을 때

  1. 코드는 살리고 commit만 취소하기
    $ git reset --soft HEAD^

  2. commit한 이전 코드 취소하기
    $ git reset --hard HEAD^

브랜치 생성하고 싶을 때

$ git branch <브랜치 이름>

원격 브랜치 목록보고 싶을 때

$ git branch -r

브랜치 이름 바꾸고 싶을 때

$ git branch -m <현재 브랜치 이름> <바꾸고 싶은 브랜치 이름>

리모트 저장소에서 브랜치 삭제한 것을 로컬 저장소에 동기화하고 싶을 때

😎 머지하고, 리모트 브렌치를 삭제했는데, 로컬에는 아직 그 브렌치가 살아있다면?
$ git fetch --all --prune

다른 브렌치의 머지 커밋들을 유지하면서 rebase 하고 싶을 때

$ git pull --rebase=merges upstream 다른 브렌치

다른 브렌치 리베이스 시에 머지 커밋 안 풀리고 가져오고 싶을 때

$ git rebase --rebase-merges upstream/다른 브렌치

다른 브렌치 리베이스 시에 머지 커밋 안 풀리고 가져오고 싶을 때

$ git rebase --rebase-merges upstream/다른 브렌치

특정 커밋 수정하고 싶을 때

$ git rebase --interactive [원하는 commit 직전 commit hash]
rebase 모드 시작
vi에서 insert 모드로 수정 원하는 commit에 edit 후 저장
$ local에서 수정사항 작업, git add .로 작업한 수정사항 반영
$ git rebase --continue
$ 다시 vi 모드에서 commit 메세지 필요하면 수정
$ git push -f origin

git ignore 적용 안될 때

$ git rm -r --cached .
$ git add .
profile
기록을 통한 성장을

0개의 댓글