Git流初始提交

时间:2018-08-27 12:42:29

标签: git github git-flow

我已经使用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首先为我添加了一个单独的Initial提交。

如您所见,提交为空:

enter image description here

所以我的问题是:我猜这是一种理想的行为,那么只有当我实际使用某功能启动回购或仅是这种情况时,它才会发生吗?顺便说一句:初始化git-flow回购的正确方法是什么?我的意思是,在git flow init之后,我应该将某些内容提交(并可能推入)到developmaster上,还是应该继续使用我的功能,然后合并到develop,然后有一天去master

1 个答案:

答案 0 :(得分:2)

  

它只会在我真正使用某功能启动回购时发生吗?还是总是这样?

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

一段时间后,在存储库wasn't well-supported中重新建立了第一次提交,因此许多开发人员习惯于通过git commit --allow-empty创建一个初始的空提交。在Git版本1.7.12中添加的--root的{​​{1}}参数使此过程的必要性降低,尽管从空提交开始可能很难改变。我今天仍然这样做。

由于most recent commit上的nvie/gitflow是在2012年9月,大约在git rebase中添加了--root自变量,因此保留此工具也就不足为奇了旧的最佳做法。

  

初始化git-flow存储库的正确方法是什么?我的意思是,在git flow init之后,我应该将某些内容提交(或可能推入)到开发或掌握中,还是应该继续开发我的功能,然后合并以进行开发,然后有一天要掌握?

这确实取决于您的用例,但是我解释original model时说,应该在功能分支(git rebase)中完成新工作,然后再完成(git flow feature start)。

该模型实际上并没有说太多关于将更改推送到中心位置的事情,这也是有道理的,因为Git是一个分布式版本控制系统,旨在与任意遥控器(或没有遥控器)一起使用。如果您使用的是GitHub(您已经添加了该标签,所以我假设您已经使用了),则推送更改可能很有意义。