将新功能分支并推送到Git中的分支和开发分支的正确方法是什么?

时间:2018-03-07 18:40:14

标签: git branch

我发现在Git中使用分支会让人感到困惑。假设我们有一个名为Dev的开发分支。

说我添加了一个新功能,我创建了一个名为feature/user-can-logout

的新分支

我通常做的是:

git fetch origin
git fetch origin feature/user-can-logout
git checkout feature/user-can-logout
git add --all
git commit -m "message here"
git push origin feature/user-can-logout
git checkout Dev
git pull origin Dev
"Fix merge conflicts if any"
git merge feature/user-can-logout

这是使用分支机构推送新功能的正确方法还是我缺少某些东西?我希望项目的提交历史尽可能完美。

1 个答案:

答案 0 :(得分:1)

有关这方面的一些事情。

首先,背靠背fetch es(就像前两个命令一样)很少有意义。 git fetch origin会在典型配置中删除所有现有分支及其历史记录,因此通常无需跟进git fetch origin *some-branch*

其次,在每个步骤中,我们必须做出一些假设,以确定您发出的命令是否正确。如果分支已经存在于远程,并且它在本地不存在,或者远程没有超出本地分支中已存在的更改,并且您正在做一些事情来编辑checkout之间的工作副本和add,那些命令可能或多或少是正确的。 (如果你以典型的方式使用分支,那么在最后一次合并命令之后,合并冲突更可能发生,而不是在拉动dev之后。)