Git本地分支与合并

git 专栏收录该内容
4 篇文章 1 订阅

1.git branch:创建分支

2.git tag:给固定的commit做标记

例如:我们有一个分支是做版本release的,当某一个release发现问题的时候,我们希望能根据一个引用轻松的切换回这个提交而不是查看历史记录然后再进行修改这是用到tag。
tag有两种,一种是轻量级的,指的是本地的一个引用;而另外一种我们称之为annotated(带注解的)他实际上是git tag对象存储在git仓库中,当你需要的时候可以推送到服务器上用以共享。

查看所有的提交
git log --oneline --decorate --graph --all
给分支做标记:
git tag "v0" a1gba30
其中 a1gba30 是你要标记的commit的Hash 如果不知名hash则默认标记的是当前的分支。由于hash的重复几率很小,所以我们只用写出57位的hash就可以了剩下的git会帮我们补全。
git tag :查看都有哪些tag
git show "v0" : 查看v0标签所对应的commit的内容(实际上是一个tag对象)

当我们要回到某一个tag的时候也可以使用:git checkout v0。
系统可能会提示:‘detached HEAD’这说明我们的head引用直接指向了一个commit而不是一个分支名,这样我们在这个分支上继续工作,当我们提交的时候我们的这部分历史可能就被丢弃掉了。
git提示我们应该使用git checkout必须加上分支名来用当前的commit创建一个分支,并且切换到这个分支。实际上这是git branch和git checkout的一个组合。

3.git checkout:在分支之间进行切换

4.git stash:在切换分支之前保存本地的修改

当我们checkout时,git会提示让你把当前的修改提交或者stash起来:
git stash save -a “stash1”
这时如果我们执行git status 时会发现当前分支状态非常干净,没有什么需要提交的。
当在别的分支上执行完之后回到该分支要把stash’中的内容还原出来:
首先执行git stash list查看stash中都有哪些内容,发现里面有一个引用stash@{0}他指向之前的那个stash。然后执行git stash pop –index(表示是否还原暂存区) stash@{0},这样就把之前保存到stash中的内容还原回去了,同时删除了stash@{0}对应的内容。如果想保存stash中的历史,那么还原的时候可以使用:git stash apply –index stash@{0}。使用git stash drop stash@{0}删除stash中的内容如果不加stash@{0}默认删除最上面的那个stash。要想删除所有的stash可以使用git stash clear

5.git merge:合并分支

1.fast-forword merge:当需要合并的分支是在当前master上衍生出来的话我们只需要使用git merge test_merge(分支名)就可以了,这样的merge不用产生一个新的提交,他只需要吧工作区和暂存区恢复到test_merge的状态,然后把master指向test_merge所指向的那个commit就可以了。
2.non-fast-forword merge当需要合并的分支不是由当前的master衍生出来的,也就是是说该分支和master有分叉点时,当我们执行 git merge test时,git会自动帮我们把文件合并,由于我们两个分支上的文件有冲突的,git会提示是否继续合并。如果你要放弃这次合并的话可以输入:git merge –abort。如果要继续这次合并的话,我们就需要编辑这个冲突的文件:如图

这里写图片描述

如图所示:

<<<<<<HEAD========之间表示的是当前分支上的内容
==========>>>>>>>>test之间表示的是test分支上的内容,这时我们只要根据需要删除多余的内容,再把编辑的文件添加到暂存区。这个时候我们直接git commit,git会提示这是一个merge commit 。这个commit和之前的commit有的区别在与,当前的这个commit是新创建的commit来承载merge的信息。

  • 1
    点赞
  • 0
    评论
  • 3
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值