此篇是为了我以后回顾而写的,所以写的有点简单,也有点乱,如果想系统的学习,请去这个网站:https://learngitbranching.js.org
此网站常用命令
1 | # 回到关卡选择页面 |
1. rebase
合并分支
我在bugFix分支来rebase master分支,那么我这个bugFix 分支就是基于master分支的一个新的节点1
2
3
4# 切换到bugFix分支
git checkout bugFix
# 让bugFix分支融合master分支的内容
git rebase master合并提交
1
2# 合并这次与上次提交
git rebase -i HEAD~2解决远程仓库fast-forward
当我们提交代码时,可能别人已经提交过内容到远程仓库了,这时我们提交代码时就会提醒我们fast-forward
,让我们先更新下代码再提交,我们可以用rebase
很快的解决这个问题。1
2
3
4# 先拉取最新代码进行rebase
git pull --rebase origin master
# 然后再提交
git push本地分支与远程分支关联
将本地master分支与远程master分支关联,这样可以在master分支中直接执行git pull
进行拉取代码,不用再指定后面的分支1
git branch --set-upstream-to=origin/master master
2. merge
我在master分支来merge bugFix分支,那么我这个master分支就是在master分支的基础上再次融合bugFix分支的内容。
1 | # 切换到master分支 |
3. checkout
移动当前分支
也可以理解为回滚上一次提交,放弃本次提交的修改,c2
是通过git log
进行查看的commit id
1
git checkout c2
移动某个分支
移动提交记录。也可以理解为回滚,回滚到上一次提交,移动分支到某个提交记录处,
1
git branch -f bugFix c2
也可以直接通过HEAD^
来指向上一个提交记录,或通过HEAD~3
往上移动3级
1 | git branch -f bugFix HEAD^ |
4. reset
回退到上一次提交的版本,
1 | # 回到此分支的上一个提交 |
如果是远程也想要回退到上一个版本,可以使用
1 | git revert HEAD^ |
如果想撤销远程分支上的内容需要使用git revert,它会新创建一个提交,而新创建的提交的状态正好等于你上一个版本的状态,假如我们现在的版本是c2
,它上一个版本就是c1
,那么执行完这个命令之后,就会新创建一个提交 为 c1’
,它与c1
的内容一致,我们将这它推送到远程端,别人更新之后就可以了
1 | git revert HEAD^ |
5. cherry-pick
将其他提交,抓过来,放到此分支下面,
c2
,c2
,c7
是git log
中的commit id
1 | # 切换到master分支 |
6. tag
也就是做个锚点,因为分支是很容易被改变,为了防止以后不能返回,所以可以打个tag,做个回滚记录点
1 | # c1 为提交记录的id |