簡體   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