2014-01-30 16 views
0

I stash編輯我的本地更改以便與遠程同步。 pull ING後,我開始pop藏匿:撤消本地更改並從遠程文件強制簽出需要合併的文件

>git stash pop 
Auto-merging somedir/someFile.xyz 
CONFLICT (add/add): Merge conflict in somedir/someFile.xyz 

說我意識到,我要放棄所有更改somedir/someFile.xyz和簡單地從遠程版本帶來。我試過

>git checkout somedir/someFile.xyz 
error: path 'somedir/someFile.xyz' is unmerged 

如何撤銷我的本地更改並強制從遠程文件中檢出顯示爲需要合併的文件?

回答

1

你應該嘗試使用一些開關,其混帳提供了像:

git checkout --ours somedir/someFile.xyz 

git checkout --theirs somedir/someFile.xyz 

至於我記得--ours交換機將在矛盾--theirs帶給你的文件版本從HEAD開關將應用您輸入的文件中的更改。

+0

'--theirs'工作我能夠檢出文件。然而,當我做了'git status'時,文件仍然顯示爲需要合併。我怎樣才能完全擺脫這種狀態? – amphibient

+0

爲了做適當的合併,你必須首先解決所有文件的所有合併衝突,然後你應該像'git add somedir/someFile.xyz'那樣輸入sth或者在此之後通過'git add --interactive'應用你想要的補丁你應該可以繼續'git commit' – Lazureus

0

檢查出來時使用強制選項。

git --help checkout -

-f,--force當開關支路,繼續即使索引或工作樹從HEAD不同。這用於丟棄本地 的更改。

當從索引檢出路徑時,請勿在未合併的 條目中失敗;相反,未合併的條目將被忽略。

因此,git checkout -f <remote> somedir/someFile.xyz

0

嘗試git merge --abort,它中止合併它也可能與git stash pop產生衝突,但我不確定。

相關問題