阻止git将master的更改带入我的分支?

时间:2015-06-17 14:48:44

标签: eclipse git

我之前说过我对git相对较新,而且我倾向于使用Eclipse git GUI可能比我应该做的更多。无论如何,这里发生了什么:

  1. 我从origin / master创建了一个远程分支,并检出了该分支。
  2. 另一位开发人员检查了对master的更改。由于复杂的原因,更改不会在我的系统上编译。
  3. 今天早上我做了一个git pull,在我的分支机构检查时,对主人的更改被带到了我的工作区。
  4. 所以现在某些文件的非工作版本都在我的工作区中,即使我在签入这些更改之前进行了分支。这有点令人惊讶。

    有人可以帮助我理解为什么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
    

2 个答案:

答案 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