git reset

2021. 7. 1. 21:07개발공부/Pro Git Book

  • main 리모트 브랜치가 yuhyeon 브랜치 시점으로 변경되어야 할 때 checkout main 브랜치로 한다음 yuhyeon 브랜치로 reset commit을 하여 force push하면 같은 커밋상태가 됩니다.

 

  • reset main to this commit에서 hard를 택하면 local이 main으로 변경된 상태에서 커밋이 가장 앞선 곳으로 변경됩니다. 이후 푸시를 할 것이냐는 창이 떴을 때 force push하여 remote main을 local main의 상태와 동등한 시점을 만들어주면 됩니다.

Git Doc

  • git reset 사용법에는 총 3가지 형식이 있습니다. <tree-ish>로부터 엔트리를 복사해 인덱스에 반영하는 것이 있고, 마지막 방식은 현재 브랜치 HEAD를 <commit>으로 옮기고 인덱스와 워킹 트리를 일치하도록 변경시키는 방식이 있습니다. 모든 방식에서 <tree-ish>/<commit>은 HEAD로 디폴트를 가집니다.
  • git reset 방식

git reset [-q] [<tree-ish>] [--] <pathspec>… git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]

  • 은 <pathspec>과 일치하는 모든 경로의 인덱스 엔트리들을 <tree-ish>로 리셋합니다.
  • git reset <pathspec>는 git add <pathspec>(로컬에서 stage로 옮기는 커밋 이전 상태)의 반대입니다. 또한 git restore [--source=<tree-ish>] --staged <pathspec> ... (stage된 파일들을 unstage로 옮기는 명령어)과 동일한 명령어 입니다.
  • git reset <pathspec> 인덱스 엔트리를 업데이트 할 때 내용들을 확인하고 싶으면, git-restore도 사용할 수 있습니다.

정리

  • 사실 Merge 했어야 할 부분인데 branch가 하나였기 때문에 conflict 없는 이점을 활용해 reset 명령어로 main을 현재 yuhyeon commit까지 끌어온 것 같습니다. 정답이 하나가 아니라 사용하면서 상황에 맞춰 효율적인 명령어들을 체득해 사용해야겠습니다.

'개발공부 > Pro Git Book' 카테고리의 다른 글

[Git] intellij(인텔리제이) .gitignore 추가하기  (0) 2022.05.16
Ch.1 Getting Started  (0) 2021.05.29