서브모듈 - gitk 사용법




어떻게 커밋 마스터가 git에서 가리키는 것을 변경할 수 있습니까? (4)

마스터의 해시가있는 .git / refs / heads / master로 이동하여 원하는대로 변경하십시오. gitg를 사용하여 마스터의 해시를 빠르게 찾은 다음 이동이 성공했는지 확인합니다.

git에서 필자는 master 브랜치에 커밋을했는데, 실제로 필자가 feature 브랜치에서 작업해야했을 때이다. 나는 이것을 변경하여 주인이 시작한 곳으로 돌아가고, 주인은 새로운 지류에있게되었습니다. 기본적으로 커밋 내역은 다음과 같습니다.

A -- B -- C -- D -- E
          |         |
          |       master
     origin/master

그리고 나는 이렇게 보이기를 원한다.

        master
          |
A -- B -- C -- D -- E
          |         |
          |       new_branch
     origin/master

어떻게 마스터 포인트를 변경할 수 있습니까?


현재 HEAD (HEAD = master라고 가정)에서 new_branch 라는 새 분기를 new_branch , master를 C로 재설정하고 new_branch 다시 전환합니다 ( new_branch 관점에서 말하기).


$ git checkout master
$ git reset --hard <commit-id-for-master-to-sit-at>

예를 들어보십시오.

$ mkdir example; cd example
$ git init
$ vi testFile.txt
(now add "test commit 1" to line 1 of file)
$ git add *
$ git commit
(add message "(+) 1st commit" to git commit)
$ vi testFile.txt
(now add "test commit 2" to line 1 of file)
$ git add *
$ git commit
(add message "(+) 2nd commit" to git commit)
$ vi testFile.txt
(now add "test commit 3" to line 1 of file)
$ git add *
$ git commit
(add message "(+) 3rd commit" to git commit)
$ git tag final_head
$ git reset --hard HEAD~1

이 예제는 마스터를 다른 커밋으로 이동하는 것을 보여줍니다. 태그를 사용하면 이전 마스터를 저장할 수 있습니다.


  • 당신의 커밋되지 않은 것을 숨겨둔다 : git stash
  • 새 분기 만들기 : git branch new_branch
  • 마스터를 origin / master로 git reset --hard origin/master : git reset --hard origin/master
  • 새로운 브랜치를 다시 git checkout new_branch 하십시오 : git checkout new_branch
  • 변경 사항을 취소하십시오 : git stash pop

작업 나무가 깨끗한 경우 stash / unstash는 필요하지 않습니다. 작업 트리에 변경 사항이 없는지 확인하십시오. 재설정하면 제거됩니다.

또 다른 가능성 (더 빠르고, 은닉하고 재설정 할 필요가 없음) :

  • 새 분기 git checkout -b new_branch master : git checkout -b new_branch master
  • '새로운'마스터 브랜치를 만들고 origin / master 커밋을 가리킨다. git branch -f master origin/master




git