Git流初始提交

问题描述 投票:4回答:1

我用git-flow创建了一些新项目。基本上,我做了一些编码,然后我写了那些确切的git命令:

git flow init (and a bunch of enters)
git remote add origin <my_repo_address>
git flow feature start Argparsing
git add .
git commit -m "<message1>"
git rm tests/*
git commit -m "deleted unused stuff"
git flow feature publish

好吧,我想在我的feature/Argparsing分支上看到两个提交。我转到GitHub上的远程存储库,我看到了这个:

enter image description here

所以在第二个提交消息中,我添加了Initial commit来强调它是我做的第一个提交。但是,我想我不必这样做,因为git-flow首先为我添加了一个单独的初始提交。

如您所见,提交为空:

enter image description here

所以我的问题是:我猜这是一个理想的行为,那么它只会发生,当我真正开始使用某个功能的回购或者它总是这样吗?顺便说一句:什么是初始化git-flow回购的正确方法?我的意思是,在git flow init之后我应该(并且可能推)某些东西上developmaster或者我应该继续处理我的功能,然后合并到develop,然后有一天到master

git github git-flow
1个回答
2
投票

它只会发生在我实际开始使用某个功能的回购时,还是总是这样?

最初的空提交happens as part of git flow init if there is no HEAD。如果您正在创建一个全新的存储库,这将是正常的。

曾几何时,在存储库wasn't well-supported中重新定位第一次提交,这么多开发人员养成了通过git commit --allow-empty创建初始空提交的习惯。 --rootgit rebase参数,在Git版本1.7.12中添加,使得这个过程不太必要,尽管从空提交开始可能是一个很难打破的习惯。我今天仍然这样做。

由于most recent commit上的nvie/gitflow是在2012年9月,与--root论证被添加到git rebase的时间大致相同,因此这个工具保留了旧的最佳实践并不奇怪。

什么是初始化git-flow repo的正确方法?我的意思是,在git flow init之后我应该提交(并且可能推送)某些东西到开发或掌握,或者我应该继续处理我的功能,然后合并开发,然后有一天掌握?

这真的取决于你的用例,但我解释original model说新的工作应该在一个功能分支(git flow feature start)完成,然后完成(git flow feature finish)。

该模型实际上并没有非常关注将更改推送到中心位置,这也是有意义的,因为Git是一个分布式版本控制系统,旨在与任意遥控器(或没有)一起工作。如果你正在使用GitHub(你已经包含了那个标签,所以我假设你是这样),推动你的改变可能是有意义的。

© www.soinside.com 2019 - 2024. All rights reserved.