$ 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가 났다면?
Conflict 해결하기 위해 코드를 수정한다.
$ git add <path>
$ git cherry-pick -continue
cherry-pick을 중단한다. cherry-pick을 실행하기 전 상황으로 코드가 돌아간다.
$ git cherry-pick -abort
코드는 살리고 commit만 취소하기
$ git reset --soft HEAD^
commit한 이전 코드 취소하기
$ git reset --hard HEAD^
$ git branch <브랜치 이름>
$ git branch -r
$ git branch -m <현재 브랜치 이름> <바꾸고 싶은 브랜치 이름>
😎 머지하고, 리모트 브렌치를 삭제했는데, 로컬에는 아직 그 브렌치가 살아있다면?
$ git fetch --all --prune
$ 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 rm -r --cached .
$ git add .