繁体   English   中英

停止git将变更掌握到我的分支?

[英]Stop git from bringing changes to master into my branch?

首先,我会说我对git还是比较陌生,而我更倾向于Eclipse git GUI。 无论如何,这是发生了什么:

  1. 我从原点/主节点创建了一个远程分支,并签出了该分支。
  2. 另一个开发人员签入了对母版的更改。 由于复杂的原因,该更改无法在我的系统上编译。
  3. 今天早上,我在分支上签出时进行了一次git pull ,对master所做的更改被带入了我的工作区。

因此,即使我在签入这些更改之前就分支了,现在某些文件的非工作版本仍在我的工作空间中。这有点令人惊讶。

有人可以帮助我了解为什么git分支时会导入这些更改,以及如何控制这种行为吗? 至少,我想将未编译的文件还原为早期版本,并防止git将master的其他更改合并到我的分支中,直到准备好合并回master。 理想情况下,我想引入其他开发人员所做的一些更改,因为项目中的某些文件很难合并。

这是我的存储库副本的git config。 我在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

所以这里的问题是MYBRANCH被设置为跟踪origin/master ,这意味着当您执行git pullorigin/master将被合并到其中。 您可以通过执行git config --unset branch.MYBRANCH.merge 假设存在一个origin/MYBRANCH ,您可以通过执行git branch -u origin/MYBRANCH (在MYBRANCH上)来跟踪它。 如果origin/MYBRANCH还不存在,则可以使用git push -u origin MYBRANCH创建/跟踪它。

另外,要从分支还原更改,您应该看到命令git reset http://git-scm.com/docs/git-reset

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM