Git分支管理

2019-03-15 23:09|来源: 网路


首先,我们创建dev分支,然后切换到dev分支

$ git checkout -b dev
git checkout 命令加上-b参数表示创建并切换,相当于以下两条命令:


$ git branch dev
$ git checkout dev

然后,用git branch命令查看当前分支:



$ git branch
* dev
  master

git branch命令会列出所有分支,当前分支前面会标一个*号


然后 我们就可以在dev分支上正常提交,比如新建一个hello.txt文件

进行提交


$ git add hello.txt
$ git commit -m "add hello"
$ git push -u origin dev

现在dev分支工作完成,我们进入GitHub


dev分支


master分支

测试环境为:我们在本地仓库先用master分支提交内容到远程仓库,然后切换分支dev提交修改的内容再到远程仓库

我们发现dev分支上hello.txt内容为hello git dev  而切换到master分支上,hello.txt内容依然为hello git

现在我们把dev分支的工作成果合并到master分支上


$ git merge dev
Updating 50bca6c..ee88faa
Fast-forward
 WebRoot/hello.txt | 2  -
 1 file changed, 1 insertion( ), 1 deletion(-)

git merge命令用于合并指定分支到当前分支。合并后,再在master分支上查看 hello.txt内容 就和dev分支上的完全一样了

合并完成后,就可以删除dev分支了


$ git branch -d dev
Deleted branch dev (was ee88faa).


删除后,查看branch,就只剩下master分支了:


$ git branch
* master
注意:此时只是删除了本地分支,删除远程分支如下:



$ git push origin :dev
提示输入用户名密码即可。



总结:

查看分支:git branch

创建分支:git branch name

切换分支:git checkout name

创建 切换分支:git checkout -b name

合并指定分支到当前分支:git merge name

删除分支:git branch -d name

注:name为分支名


作者:itmyhome

出处:http://blog.csdn.net/itmyhome1990/article/details/39929199

相关问答

更多
  • 区别很大,差距也很大,Git在这方面完胜SVN git分支切换可以在瞬间完成,底层实现也就是一个指针。 而SVN的分支切换,你会发现,它会慢吞吞地从服务器拉取这个分支的代码,所以很慢。
  • 首先检查一下你的git版本,是否是最新的。最新版本是2.1.0。而我用的是1.8.3也没有出现你说的这种情况,因为如果没有commit,gitbranch是无法切换的:我创建了一个叫new1的分支。过程如下:gitbranchnew1//创建branchgitadd1.txt//添加一个修改文件gitcommit-m"update"//提交master里的东西gitcheckoutnew1//切换到new1编辑new1里面一个文本文件1.txt,再次commitgitcheckoutmaster//切换回来 ...
  • git pull --rebase那些尚未推送的提交,因此它应该是安全的。 让我们来看看… A B c D *--*--*--*
  • 设置Jenkins服务器。 它可以将每个maven模块构建为单独的项目,然后自动重建具有快照依赖关系的任何其他项目。 更新 Jenkins的GIT插件具有管理开发功能分支自动合并为“主”或“集成”分支的功能。 查看文档: https://wiki.jenkins-ci.org/display/JENKINS/Git+Plugin#GitPlugin-AdvancedFeatures 另一种选择是使用像Gerrit这样的代码审查工具来控制功能开发。 同样,Gerrit控制集成到共享代码流的更改,Gerrit可 ...
  • vim报告了这个错误,我认为这是你的编辑。 它表明vim认为vim另一个副本已经在运行并编辑文件.git/.COMMIT_EDITMSG (这是git用于在提交时准备提交消息的文件)。 在编辑这个文件时杀死vim可能会让交换文件落后,从而导致这个问题。 还有可能你真的有另一个运行vim实例,编辑这个文件。 如果是前者,则可以选择“(R)ecover”,它读取交换文件并使用它来填充编辑器或“无论如何”都会忽略交换文件。 如果你有另一个vim运行的副本,那么你可能应该“(Q)uit”或者“(A)bort”来取消 ...
  • 我应该将这个分支与远程同步还是不必要? 在GitFlow中,每个GitFlow的分支都有特定的角色。 主人 :你的主要分支,这是你发布版本应该是的地方,这是用户会看到的。 开发 :主人的“克隆”,我们通过一个像开发一样的中间分支而不是主人,因为我们可以在开发主人之前实现每个功能并融合开发。 功能 :您应该为每个要实现的功能创建一个功能分支,这允许您和您的同事使用不同的功能,而不会产生副作用。 错误修正 :在有错误需要解决时启动它,纠正错误而不改变同事的工作,就像你们其中一个人可以专注于错误的解决方案,其余部 ...
  • Git没有Mercurial所谓的“命名分支”。 相反,Git称之为“分支”的东西与Mercurial称之为书签的东西非常相似。 有一些差异: 在Git中,每个头必须有一个分支指针,或者它被认为是半不存在的(一个“分离的HEAD”),并且可能在一段时间后被垃圾收集。 此类头不会出现在存储库历史记录中,但可以从reflog中检索。 这与Mercurial形成鲜明对比,Mercurial书签完全是可选的。 Git始终维护“远程分支”,而Mercurial仅在本地和远程书签发散时执行此操作(您会收到“发散书签”警 ...
  • 设置一个单独的开发/暂存站点来测试您的分支,如果有效,则将更改应用于实际站点。 您可以搜索如何设置ROR暂存网站,谷歌将提供大量示例(包括Stack Overflow的结果,例如此结果)。 Set up a separate development/staging site to test your branch on, and if it works, then apply the changes to the live site. You can search around for how to set ...