我不知道我想要做的是有意義的,但這裏的文件工作樹手動合併文件的解釋是:混帳:HOWTO從從頭部
我產生一些源文件由一個工具,然後改變一點,並承諾。 會發生什麼,有時我需要重新生成這些文件。
我需要手動合併這個新文件和之前提交的文件,並從舊版本中選取哪些部分以及從新版本中取出哪些部分。
有沒有辦法做到這一點?
謝謝!
我不知道我想要做的是有意義的,但這裏的文件工作樹手動合併文件的解釋是:混帳:HOWTO從從頭部
我產生一些源文件由一個工具,然後改變一點,並承諾。 會發生什麼,有時我需要重新生成這些文件。
我需要手動合併這個新文件和之前提交的文件,並從舊版本中選取哪些部分以及從新版本中取出哪些部分。
有沒有辦法做到這一點?
謝謝!
你可以創建一個像「generated_files」這樣的分支,但是當你生成你的文件時,你從來沒有碰過這個分支。
在您的「主」分支中,您可以合併分支「generated_files」。
每次生成新文件時,都必須將其提交到branch「generated_files」中,該分支將從之前生成的版本創建新的delta。
如果你在「master」中的這個分支之後合併,這將只應用來自以前版本的delta,並保留你的修改。
也許你可以在合併過程中使用策略來避免衝突。
試着這麼做:
混帳克隆
的Git分支-a 「TEMP」
git的結帳臨時
...生成新的文件.. 。
git add 。
git的承諾-m 「提交文本」
git的結帳主
混帳合併的臨時
從本質上說,做你的東西在另一個分支,並簡單地歸併分支到主分支。
這樣做的一種方式,是使-m
選項「混帳結賬」使用:
退房的基地(祖先)的版本,例如,如果你想要做一個三當前版本(HEAD),以前的版本(HEAD ^)和生成的文件(在工作目錄)之間的路合併:
git checkout HEAD^
不要擔心警告有關分離的頭。
生成文件
使用-m
選項:
git checkout -m @{-1} # or "git checkout -m <branch>"
從git checkout手冊頁:
- m ::
--merge ::當切換分支,如果你有本地修改的,屬於當前分支,分支到要轉換之間不同的一個或多個文件,命令拒絕切換分支機構爲了在上下文中保留您的修改。但是,使用此選項,當前分支,工作樹內容和新分支之間的三向合併已完成,並且您將位於新分支上。
未經測試!
作爲後備,你總是有git merge-file低電平(水暖)命令。
很棒的建議。這將會起作用並節省大量時間。謝謝。 – ivans 2009-11-02 09:22:20
現在已經在實踐中對此進行了測試,我需要再次表示感謝。很棒! :) – ivans 2009-11-02 14:39:47