我最近从CVS / SVN切换到Git,到目前为止享受它。但是,在我最近的开发周期中,我忘记了在创建dev分支之前创建主分支的关键步骤。
在我的正常周期中,我有我的主干(稳定代码),然后是我的维护分支,我们在其中执行维护版本。在该维护分支中,我们有针对个别错误的开发分支。
通常,我的维护分支遵循我的版本。因此,在我的主干中,我将拥有我的主要版本(即:ver 1,ver 2,ver 3)。然后我的维护分支(即:1.1,2.1,2.2等)。然后在我的维护分支中,我的开发分支用于此版本(即:1.2.1,2.1.3等)。
在我的上一个周期中,我正在研究2.2.1。我的上一次发布是2.1.8。我不小心从我的2.1分支分支并做了工作,而不是先创建一个2.2分支。现在,当我想要合并我的更改时,我没有将2.2分支合并回来。
我“应该”做的是将我的2.1分支合并回主干(v2),然后从主干分支2.2,然后从2.2分支分支2.2.1。
现在我没有2.2分支,我的2.2.1分支错误地出现了2.1,我该如何保存自己?
已经在2.2.1中完成了很多开发工作。
|-1.0
|-2.0
|-2.1
|-2.1.1
|-2.1.2
|-....
|-2.1.8
|-2.2.1 <---- wrong place!!!
应该是:
|-1.0
|-2.0
|-2.1
|-2.1.1
|-2.1.2
|-....
|-2.1.8
|-2.2
|-2.2.1
谢谢,
埃里克
答案 0 :(得分:1)
首先,在git中,您可以随时更改内容并移动内容。所以不要惊慌。首先,在主副本上执行之前,创建整个目录的副本以在另一个副本上运行测试“以防万一”。它会让你感觉更安全。
您需要做的是:
1)创建你想要的2.2分支。 IE,查看应分支的位置(我认为git checkout v2.1
之类的内容,但很难从您的描述中看出来)。然后用git checkout -b v2.2
。
2)然后,您需要将2.2.1分支移动到v2.2分支。这实际上很容易用git rebase
完成,它在功能上将树枝从树中的一个点移动到另一个点。您可以使用git checkout v2.2.1
后跟git rebase v2.2
执行此操作,这会将v2.2.1分支中所做的更改移动到新的v2.2分支中。