2013-03-23 38 views
3

我想從github主完全更新我的當前工作目錄。有一個我工作過的文件,名爲form.html,它存在於我的工作目錄中,而在github源主分支上存在一箇舊版本。如何從github中取出並保留本地文件而不解決合併衝突

git pull origin master 

當從主人提出要求解決衝突。我不想解決合併衝突,而是想要我的文件從我的本地分支form.html完全取代原始主分支(遠程)上的form.html

什麼是實現這一目標的最佳方式?感謝

+1

作爲解決衝突的一部分,爲什麼不將整個新文件放置到位? – alex 2013-03-24 00:01:27

回答

6

如果您還沒有提交您的本地文件,你可以(以下「git pull keeping local changes‘的想法):

git stash 
git pull 
git stash pop 
# if conflict on pop: 
git checkout --theirs -- form.html 

但如果你的文件被提交,然後請參閱’Is it possible to exclude specific commits when doing a git merge?」,並與一個.gitattributes,聲明適當的合併:

form.html merge=ours 
+0

什麼是git checkout的效果 - 他們 - form.html? – 2013-03-24 00:17:59

+2

@RyanPerera在'藏匿流行'期間發生衝突時,'checkout'他們'確保你找回你藏起來的東西,而不是你所拉的東西。它會用你保存的內容覆蓋pull引入的修改。 – VonC 2013-03-24 00:40:38

1

假設你已經提交你的form.html文件...

你執行後「的git拉出身米aster'並且有衝突,那麼您可以根據您的本地版本輕鬆解決衝突。拉動後執行以下操作:

git checkout --ours -- <files in conflict> 
git add <files in conflict> 
git commit -m 'resolved with --ours' 
git push origin master