- 创建新的分支:
- git branch name
- git commit【记得提交】
- 切换当前操作的分支:
- git checkout name
- 如果不存在分支:添加
-b
会自动创建 - git checkout -b name【自动创建name分支并切换到name分支】
- 合并两个分支:
- git checkout name
- git merge name1 【把名称为name1的分支合并到name分支中】
- git commit
- 线性合并
- 如果两个分支是平行状态,将当前分支提交到某个分支的前面:git rebase 目标版本
- 如果两个分支是顺序模式,切换到分支后面版本上,git rebase 新版本,表示将现在的版本更新到最新版本
- 分离HEAD:
- 我的理解就是当前操作的版本就是HEAD,而每个版本都有一个HASH值,我们可以直接git checkout hasd值,分离HEAD,不同选择版本名。【HASH和版本名区别还有待研究】
- 移动HEAD
- 使用 ^ 向上移动1个提交记录
- 使用 ~<num> 向上移动多个提交记录
- git checkout name^ :切换到name的父提交【^数字2,表示回到第二个父版本】
- git checkout name~4:切换HEAD到name的上4层级
- 强制移动分支的位置
- git branch -f 被移动 目标位置【branch在这里不是创建新分支的意思】
- 撤销操作
- reset:建议在私有分支使用,会丢弃部分版本【参数代表目标位置】
- revert:建议在公有分支使用,不会丢弃历史版本,只会新建一个版本【参数代表从哪个版本开始新建历史版本】
- 合并版本
- git cherry-pick A B C :把 A B C三个版本依次添加到当前HEAD的下面
- cherry-pick 可以从提交树的任何地方拿一个提交来放在 HEAD 上(尽管那个提交不在上游)
- 重排版本顺序
-
git rebase 位置旧 位置新
在线性版本中,会直接同步一起,不是线性版本,会移动。 -
git rebase HEAD~6
【弹出窗口,当前位置上面的六个版本】
-
- 小的修改
- git commit --amend
- git标记
- git tag 标记名 版本名
- 查询标签附近的版本
- git describe <ref> --ref:可选,版本名称
- PS:git常用命令在线练习网站 http://learngitbranching.js.org/?demo
网友评论