分支只是提交指针。当没有任何可指点时,你会进入一些奇怪的领域。老实说,如果您只是想获得“干净”的工作流程历史记录,那么任何重要的第一次提交都是从develop
into合并master
,请在 first 中添加一个无关紧要的提交master
:
git branch --move master develop
git checkout --orphan master
git rm -rf . ;# abandon the staged, orphaned changes
echo README > README ;# put something in this working directory
git add README && git commit -m "Initial commit of <my_project>"
为什么要犯什么?因为一旦您运行--orphan
结帐,您将无法对master
分支做任何有意义的事情。自己试试:
$ git checkout --orphan master
Switched to a new branch 'master'
$ git checkout develop && git checkout master
error: pathspec 'master' did not match any file(s) known to git.
合并怎么样?
$ git checkout --orphan master
Switched to a new branch 'master'
$ git merge develop
fatal: Non-fast-forward commit does not make sense into an empty head
没有骰子。解决这个问题的唯一真正方法是向那个空分支提交一些东西,任何东西。在你这样做的那一刻,你可以develop
以任何你想要的方式合并:
$ git merge develop
Merge made by the 'recursive' strategy.
README | 1 +
1 file changed, 1 insertion(+)
create mode 100644 README
和日志:
$ git log --graph --oneline
* 867a1f9 Merge branch 'develop'
|\
| * 22df145 README
* 15ba82a Initial commit of test project