假设我这样回购:
~/Desktop/git_repo
$ ls
cover.jpg cover_small.jpg README.md
~/Desktop/git_repo on master
$ git status
On branch master
nothing to commit, working directory clean
现在我将添加一个新的分支,并将当前分支切换为 new_branch
~/Desktop/git_repo on master
$ git branch new_branch
~/Desktop/git_repo on master
$ git checkout new_branch
Switched to branch 'new_branch'
~/Desktop/git_repo on new_branch
$ git status
On branch new_branch
让我们在 new_branch 上看到我们的文件:
~/Desktop/git_repo on new_branch
$ ls
cover.jpg cover_small.jpg README.md
很好,这是预料之中的。现在,让我们删除 new_branch 上的 cover.jpg ,但不要 提交它:
~/Desktop/git_repo on new_branch
$ git rm cover.jpg
rm 'cover.jpg'
~/Desktop/git_repo on new_branch!
$ ls
cover_small.jpg README.md
~/Desktop/git_repo on new_branch!
$ git status
On branch new_branch
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: cover.jpg
好的,这是预期的。现在,让我们切换到我们的主分支和列表文件。我希望 cover.jpg 包含在内:
~/Desktop/git_repo on new_branch!
$ git checkout master
D cover.jpg
Switched to branch 'master'
~/Desktop/git_repo on master!
$ ls
cover_small.jpg README.md
~/Desktop/git_repo on master!
$ git status
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
deleted: cover.jpg
什么?为什么我的主分支来自 new_branch ?我的错是什么?这是我的问题。
谢谢..
答案 0 :(得分:3)
你误解了。
您只是暂停了该文件的删除,并且由于该文件同时存在于master
和new_branch
中,因此Git认为可以将更改保留在其阶段。
要将更改永久更改为new_branch
,您需要再次检查并提交更改。
一旦你这样做,那么你们两个分支之间的提交就会有所不同。