2012-07-18 87 views
6

說我有一個混帳回購協議文件:保持局部變化的混帳回購協議

#file.py 

setting1 = default1 
setting2 = default2 

<some code> 

現在,我要讓那些不被推回回購

#file.py - local change 

setting1 = mysetting1 
setting2 = mysetting2 

<some code> 
一些局部變化

說未來某個時候上游回購更新,我想拉下他們的修改,而不會搞亂我的本地設置。 IE一個git命令我可以運行,將更新的文件,這樣,這將是

#file.py - updated copy 

setting1 = mysetting1 
setting2 = mysetting2 

<new code> 

是否有某種方式來做到這一點,無論是用樹枝或其他一些混帳的功能,使我沒有把本地設置在一個單獨的文件?

我見過其他幾個這樣的問題,但他們專注於排除整個文件。

感謝

回答

2

看看git stash。它也是一個「整個文件」方法,但您可能會發現它足夠靈活。

否則,使用git gui和大量重新分配(git rebase --interactive)或櫻桃採摘(git cherry-pick)或只是一個支部應該有所幫助。

+0

謝謝。實際上存儲**不會合並文件,因此對文件具有相同的影響。我發現有一個當地的分支機構,並重新成爲最可靠的,因爲它似乎很容易失去一個藏匿,因此我所有的變化。 – korylprince 2012-07-19 12:05:21

+0

哦,我從來不打算暗示它不合並。我只是想說,你不能用一個命令在文件中保存一部分更改(放棄其餘部分)。 – fork0 2012-07-19 12:08:43

+0

所有這些方法的唯一問題是,如果直接在編輯的下方添加一行,git合併總是有衝突。例如,如果我有類似上面的代碼,並且我將在原始分支的setting2下面添加「setting3 = default」,則rebase(或其他方法)會因衝突而失敗,但如果我在兩者之間添加一行,它會進行重新分配或者其他任何罰款。任何想法爲什麼? – korylprince 2012-07-19 12:08:50

3

你在做什麼可能是改變連接字符串等。這對你的環境來說是本地的。處理這個問題的正確方法是通過塗抹/清除腳本。看看"Git Attributes" chapter in the Pro Git book(免費)。

+0

無論這是否是他需要或不需要,感謝您鏈接到它,非常聰明。 – R0MANARMY 2012-07-19 01:37:30

+0

感謝您的回答。我不認爲我需要這麼強大的東西,但稍後它可能會變得有用。 – korylprince 2012-07-19 12:10:33

相關問題