当前位置:   article > 正文

git高级使用_rebase master to tag

rebase master to tag

此篇是为了我以后回顾而写的,所以写的有点简单,也有点乱,如果想系统的学习,请去这个网站:https://learngitbranching.js.org

此网站常用命令

# 回到关卡选择页面
levels
# 查看答案
show solution
# 重新开始
level advance3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1. rebase

  • 合并分支
    我在bugFix分支来rebase master分支,那么我这个bugFix 分支就是基于master分支的一个新的节点
# 切换到bugFix分支
git checkout bugFix 
# 让bugFix分支融合master分支的内容
git rebase master 
  • 1
  • 2
  • 3
  • 4
  • 合并提交
# 合并这次与上次提交
git rebase -i HEAD~2 

# 合并区间提交
git rebase -i start_point end_point

# 取消
git rebase --abort
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • p, pick: 保留该 commit。
  • r, reword: 保留该 commit,可以修改 commit 的注释。
  • e, eidt: 保留该 commit,但停下来修改该 commit (不仅仅是注释),可以用来解决 merge 冲突。
  • s, squash: 将该 commit 和 前面一个 commit 合并。
  • f, fixup: 将该 commit 和 前面一个 commit 合并,但不保留该提交的注释信息。
  • x, exec: 执行 shell 命令。
  • d, drop: 丢弃该 commit。
pick 2748c 合并之后
s 2748c
s 2748c
  • 1
  • 2
  • 3
  • 解决远程仓库fast-forward
    当我们提交代码时,可能别人已经提交过内容到远程仓库了,这时我们提交代码时就会提醒我们fast-forward,让我们先更新下代码再提交,我们可以用rebase很快的解决这个问题。
# 先拉取最新代码进行rebase
git pull --rebase origin master
# 然后再提交
git push 
  • 1
  • 2
  • 3
  • 4
  • 本地分支与远程分支关联
    将本地master分支与远程master分支关联,这样可以在master分支中直接执行git pull进行拉取代码,不用再指定后面的分支
git branch --set-upstream-to=origin/master  master
  • 1

2. merge

我在master分支来merge bugFix分支,那么我这个master分支就是在master分支的基础上再次融合bugFix分支的内容。

# 切换到master分支
git checkout master
# 融合bugFix分支的内容
git merge bugFix
  • 1
  • 2
  • 3
  • 4

3. checkout

  • 移动当前分支
    也可以理解为回滚上一次提交,放弃本次提交的修改,c2是通过git log进行查看的 commit id
git checkout c2
  • 1
  • 移动某个分支

移动提交记录。也可以理解为回滚,回滚到上一次提交,移动分支到某个提交记录处,

git branch -f bugFix c2
  • 1

也可以直接通过HEAD^来指向上一个提交记录,或通过HEAD~3 往上移动3级

git branch -f bugFix HEAD^
git branch -f bugFix HEAD~2
  • 1
  • 2

4. reset

回退到上一次提交的版本,

# 回到此分支的上一个提交
git reset HEAD^
# 回到master分支的上一个提交
git reset master^
  • 1
  • 2
  • 3
  • 4

如果是远程也想要回退到上一个版本,可以使用

git revert HEAD^
  • 1

如果想撤销远程分支上的内容需要使用git revert,它会新创建一个提交,而新创建的提交的状态正好等于你上一个版本的状态,假如我们现在的版本是 c2,它上一个版本就是c1,那么执行完这个命令之后,就会新创建一个提交 为 c1’,它与c1的内容一致,我们将这它推送到远程端,别人更新之后就可以了

git revert HEAD^
  • 1

5. cherry-pick

将其他提交,抓过来,放到此分支下面, c2c2c7git log中的commit id

# 切换到master分支
git checkout master
# 将其他分支的提交,拿过来,放到master上,特别注意,这几个记录的顺序问题
git cherry-pick c2 c4 c7
# 结果: HEAD——> c7——> c4——> c2
  • 1
  • 2
  • 3
  • 4
  • 5

6. tag

也就是做个锚点,因为分支是很容易被改变,为了防止以后不能返回,所以可以打个tag,做个回滚记录点

# c1 为提交记录的id
git tag tag名 c1
  • 1
  • 2
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/986730
推荐阅读
相关标签
  

闽ICP备14008679号