基础篇
1.修改版本库并创建新的提交记录git commit
git commit
2.创建一个新的分支git branch <分支名>
git branch newImage
3.切换分支命令git checkout <分支名>
git checkout <分支名>
4.创建新分支时切换到新分支git checkout -b <分支名>
git checkout -b <分支名>
5.合并两个分支
方法一 git merge
命令
具体操作
思路
创建新分支 bugFix
用 git checkout bugFix 命令切换到该分支
提交一次
用 git checkout master 切换回 master
再提交一次
用 git merge 把 bugFix 合并到 master
命令
git beanch bugfix 创建新分支
git checkout bugfix 切换到新分支
git commit 提交修改记录
git checkout master 切换到master分支
git commit 提交修改记录
git merge bugfix 合并bugfix分支到master
方法二git rebase
命令
注:Rebase 实际上就是取出一系列的提交记录,
“复制”它们,然后在另外一个地方逐个的放下去。
具体操作
思路
新建并切换到 bugFix 分支
提交一次
切换回 master 分支再提交一次
再次切换到 bugFix 分支,rebase 到 master 上
命令
git checkout -b bugfix 创建并切换到分支
git commit 提交
git checkout master 切换到master分支
git commit 提交
git checkout bugfix 再切换到bugfix分支
git rebase master 合并到master上
git checkout master 切换到master上
git rebase bugfix 同步到bugfix
高级篇
对HEAD的认识
HEAD 是一个对当前检出记录的符号引用,
也就是指向你正在其基础上进行工作的提交记录。
HEAD 总是指向当前分支上最近一次提交记录。
大多数修改提交树的 Git 命令都是从改变 HEAD 的指向开始的。
HEAD 通常情况下是指向分支名的(如 bugFix)。
在你提交时,改变了 bugFix 的状态,这一变化通过 HEAD 变得可见。
想看 HEAD 指向,可以通过cat .git/HEAD
查看。
如果 HEAD 指向的是一个引用,还可以用 git symbolic-ref HEAD
查看它的指向。
分离的 HEAD
分离的 HEAD 就是让其指向了某个具体的提交记录而不是分支名。
在命令执行之前的状态如下所示:
HEAD -> master -> C1
HEAD 指向 master, master 指向 C1
相对引用
使用 ^ 向上移动 1 个提交记录
使用 ~ 向上移动多个提交记录,如 ~3
用相对引用最多的就是移动分支。可以直接使用 -f 选项让分支指向另一个提交
如:git branch -f master HEAD~3
撤销变更
通过把分支记录回退几个提交记录来实现撤销改动。你可以将这想象成“改写历史”。
本地分支中使用 git reset
git reset
撤销更改并分享给
git revert