git基本用法笔记
分支建立于合并
git commit # 提交
git branch branch_name # 新建分支
git checkout branch_name # 切换分支
git merge branch_name # 合并分支
# 将branch_name合并到当前分支,并增加一次commit
git rebase branch_name # 复制分支
# 将当前分支所有commit复制到branch_name,没有新增commit
# 当前分支和branch_name 有共同的祖先
在分支树上移动
branch_name指向分支树上的一个提交记录,每一个提交记录都有唯一的SHA-1 Hash值标识作为commit id
默认HEAD指向当前提交记录,当前记录有分支名,则显示为branch_name*
HEAD可以指向任何其他的提交记录,只需要checkout到一个指定的commit id,或者使用引用
git checkout da3423*
# 相对引用^
git checkout HEAD^^ # 将HEAD指向HEAD的第2父提交
git checkout master^ # 将HEAD指向master的第1父提交
git branch -f master HEAD^^^ # 强制将master指向HEAD的第三父提交
# 相对引用~
git checkout HEAD~10 # 将HEAD指向HEAD前10个commit id
# 撤销变更
git reset master^ # 当前分支指向master^,工作区内容不变
git revert master^ # 增加一次提交,使当前分支与master^相同
移动提交记录
git cherry-pick <提交号>...
# 将一系列提交copy到当前分支
git rebase -i <提交号>
# 以-i参数为基,重新整理提交(排序,删除等)