我之前说过我对git相对较新,而且我倾向于使用Eclipse git GUI可能比我应该做的更多。无论如何,这里发生了什么:
git pull
,在我的分支机构检查时,对主人的更改被带到了我的工作区。所以现在某些文件的非工作版本都在我的工作区中,即使我在签入这些更改之前进行了分支。这有点令人惊讶。
有人可以帮助我理解为什么git在我分支时导入这些更改,以及如何控制这种行为?至少,我想恢复那些不能编译到早期版本的文件,并阻止git将其他更改从master合并到我的分支,直到我准备好合并回master。理想情况下,我想引入其他开发人员所做更改的部分,因为项目中的某些文件很难合并。
这是我的存储库副本的git配置。我在MYBRANCH:
[core]
symlinks = false
repositoryformatversion = 0
filemode = false
logallrefupdates = true
[remote "origin"]
url = ssh://git@1.2.3.4:7999/foo/bar.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "SOMEOTHERBRANCH"]
remote = origin
merge = refs/heads/master
[branch "MYBRANCH"]
remote = origin
merge = refs/heads/master
答案 0 :(得分:3)
因此,问题在于MYBRANCH
设置为跟踪origin/master
,这意味着当您执行git pull
时,origin/master
将合并到其中。你可以通过git config --unset branch.MYBRANCH.merge
解开它。假设有origin/MYBRANCH
,您可以通过git branch -u origin/MYBRANCH
(在MYBRANCH上)进行跟踪。如果origin/MYBRANCH
尚不存在,您可以使用git push -u origin MYBRANCH
创建/跟踪它。
答案 1 :(得分:1)
此外,要从分支机构还原更改,您应该会看到命令git reset
http://git-scm.com/docs/git-reset