Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Git中,分支和向分支和开发分支推送新特性的正确方法是什么?_Git_Branch - Fatal编程技术网

在Git中,分支和向分支和开发分支推送新特性的正确方法是什么?

在Git中,分支和向分支和开发分支推送新特性的正确方法是什么?,git,branch,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/us

我发现在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

这是使用分支并推出新功能的正确方法,还是我遗漏了什么?我希望项目的提交历史记录尽可能完美。

关于这一点有几点

首先,背对背执行
fetch
es(就像前两个命令一样)几乎没有意义
git-fetch-origin
将在典型配置中下拉所有现有分支及其历史记录,因此通常不需要使用
git-fetch-origin*某些分支*


其次,在每一步中,我们都必须做出一些假设,以确定您发出的命令是否正确。如果远程分支已经存在,或者它在本地不存在,或者远程分支没有超出本地分支中已有内容的更改,并且您正在执行一些操作来编辑
签出
添加
之间的工作副本,那么这些命令可能或多或少是正确的。(如果您以典型的方式使用分支,则在最后一个Merge命令之后,而不是在拉拽dev之后,合并冲突的可能性更大。)

就是这样,看起来很不错。如果你是Git的初学者,有一个叫做“SourceTree”的IDE,我认为github也有一个IDE。但是IDE的要点是,您的分支显示为图形。因此,它可以帮助您了解GitFlow。请阅读以提高您对Git Flow工作流的理解,。另外,我强烈推荐使用git GUI前端。它简单,对初学者友好,并且支持理解git的工作原理。