Learn Git Branching学习随笔
一、提交与分支
git commit 提交纪律
git branch 简单地指向某个提交记录,*表示当前所在分支
git checkout <name> 切换分支
git checkout -b <your-branch-name> 创建并切换
二、合并分支
1)方式1:git merge 产生一个特殊提交记录,包含2个父节点
git merge <branch-name> 合并另一个分支到当前分支(当前分支包含了代码库所有修改)
git chekout <branch-name> & git merge master 切换到<branch-name>分支,并git merge <master>合并master到当前分支(<branch-name>分支也包含了代码库所有修改)
2)方式2:git rebase 取出一系列的提交记录,复制,在另一个地方逐步放下去 *在<branch-name>分支上
git rebase master
git checkout master
git rebase <branch-name>
三、HEAD——指向你正在其基础上进行工作的提交记录
通过hash值指定提交记录(git log 查看提交记录的hash值)
git checkout <hash值> 分离HEAD
四、相对引用
1)^:向上移动1个提交记录
2)~<num>:向上移动多个提交记录
git checkout master^ 切换到master的父节点
git checkout master^^ 切换到master的第2个父节点
git checkout HEAD^
git checkout HEAD~4
git chekout HEAD^2
git checkout HEAD~^2~2
五、强制修改分支位置(移动分支)
git branch -f master HEAD~3
六、撤销变更
1)git reset 把分支退回几个提交记录,原来指向记录就像从来没提交过一样
git reset HEAD~2 退回之后,本地代码库根本不知道有退回的这2次提交(对远程分支无效)
2)git revert 撤销更改,并分享给别人(通过push到远程仓库)
七、整理提交记录
1)git cherry-pick <提交hash值>... 将一些提交复制到当前所在的位置(HEAD)下面(需要知道提交记录的hash值)
2)交互式rebase(不知道提交记录hash值时)
git rebase -i HEAD~4 (1)调整提交记录的顺序 (2)删除不想要的提交 (3)合并提交
八、本地栈式提交
九、Git Tags——永久地将特定的提交命名为里程碑,标识特定位置(不随提交而移动)
git tag V1 C1
十、git describe——描述tag
git describe <ref>

浙公网安备 33010602011771号