我发现在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
这是使用分支机构推送新功能的正确方法还是我缺少某些东西?我希望项目的提交历史尽可能完美。
答案 0 :(得分:1)
有关这方面的一些事情。
首先,背靠背fetch
es(就像前两个命令一样)很少有意义。 git fetch origin
会在典型配置中删除所有现有分支及其历史记录,因此通常无需跟进git fetch origin *some-branch*
。
其次,在每个步骤中,我们必须做出一些假设,以确定您发出的命令是否正确。如果分支已经存在于远程,并且它在本地不存在,或者远程没有超出本地分支中已存在的更改,并且您正在做一些事情来编辑checkout
之间的工作副本和add
,那些命令可能或多或少是正确的。 (如果你以典型的方式使用分支,那么在最后一次合并命令之后,合并冲突更可能发生,而不是在拉动dev之后。)