基础Git命令
1.提交
git commit -m "annotation"
以当前分支(master)的当前节点作为父节点新建一个子节点,其他分支不受影响:
2.新建分支
git branch <new_branch_name>
3.切换分支
git checkout <branch_name>
4.分支新建和切换同时完成
git checkout -b <new_branch_name>
5.分支合并
git merge bugFix
上述命令将bugFix分支合并到master分支上,如图:
当前master分支的C4节点包含了所有代码库的修改,而bugFix分支留待解决:
git checkout bugFix
git merge master
此时,两个分支均到达最新节点,上溯到C0包括代码库所有的修改记录
6.分支合并的另一种方式
git rebase master
命令将bugFix分支里的工作直接移动master分支上,使得并行开发的工作看起来像线性开发
接着更新master分支:
git checkout master
git rebase bugFix
高级Git命令
1.分离HEAD
HEAD初始一般指向分支名,分支名指向当前提交记录节点,查看HEAD指向:
cat ./.git/HEAD
git symbolic-ref HEAD
使用下列命令切换HEAD到指定节点
git checkout <node_hash_name>
2.便捷分离HEAD
没有可视化提交树的情况下,使用git log查看提交记录的哈希值,40位字符只需要输入前几位唯一标识即可。
推荐使用相对引用:
git checkout HEAD^ 向上移动一个提交记录,即父节点
git checkout HEAD~<num> 向上移动多个提交记录
3.强制修改分支位置
git branch -f master HEAD~3
上述命令将master分支强制指向HEAD的第三级父提交节点
4.撤销变更
(1) git reset
将本地分支记录回退几个提交记录来实现撤销更改,使回退路径上的几个提交记录未存在过一样
git reset HEAD~1
若使用git reset HEAD则无事发生
C2提交记录节点消失
(2) git revert
git reset 修改的是本地代码库的记忆,对远端分支不做影响,为了撤销更改并分享给别人,使用git revert
git revert HEAD
上述命令撤销当前提交记录节点的修改,复制一份父节点,新的提交记录C2’与C1相同,可以推送到远程仓库与别人分享
整理提交记录
未完待续