2011-02-02 70 views
0

我的工作提高一个流行的PHP论坛软件。一个月前,我开始使用Git存储库1.0版:Git的合并旧的修改版本和新未修改

git init . 
(copied files here of version 1.0) 
git add . 
git commit 
后,我工作在改进这个软件为1个月(人提交)

。现在有新的官方版本可用。版本是1.1。我必须合并论坛的新功能而不删除我的代码。我应该使用哪些git命令?

我尝试做如下:

1) git branch vendor 
2) git checkout vendor 
3) delete old files and put files of version 1.1 
4) git checkout master 
5) git merge vendor 

但是,当我这样做,我失去了我所有的修改。我哪里出错了? 谢谢。

回答

2

理想情况下,您正在使用的软件应该已经有了一个可公开访问的某种类型的存储库,您应该可以使用git-svn或其他某个导入程序。假设这是由于某种原因不可能的,这是我的建议。

创建一个名为“供应商”的分支,而是从开始提交您添加1.0版本(貌似这是你的根提交)。无论何时出现新版本,请查看该分支,删除所有内容,并在发布中转储(就像您所说的那样)。重要部分:绝不会在此分支上包含任何更改。然后你可以自由地将它合并到你的主分支中。由于新版本可能会进行大量修改,因此您可能会更频繁地遇到此工作流程中的合并冲突。工作的危险。

你的病史应最终是这样的:

x [1.0] ------- x [1.1] ------------ x [1.2] (vendor) 
\    \     \ 
    o - o - o - o - o - o - o - o - o - o (master) 

粗体文字,顺便说一句,是你出了问题。您可以从主分支开始vendor分支,所以当你提交的1.1版,你的历史是这样的:

x [1.0] - o - o - o - o - o (master) - x [1.1] (vendor) 

所以很自然的,当你合并到供应商的高手,你结束了精确V1.1。

+0

感谢,并有可能创造一个所谓的“卖方”分支,在那里我加了1.0的版本用一个命令从呈交开始? – 2011-02-02 21:21:19

相关问题