git一些笔记
1、关于head
HEAD 是一个队当前检出记录符号引用,也就是指向其基础上进行工作的提交记录
HEAD总是指向当前分支的上一次提交
git checkout master^ 本地切换至master的上一次提交
git checkout C3 分离HEAD,切换至C3的提交记录
git chekcout HEAD~4 当前提交后退4步
git branch -f master HEAD~3 master分支指向C1提交
2、撤销变更
git reset HEAD~1 # 只针对本地分支生效
git revert HEAD
before : after:
3、git cherry-pick C2
before after:
4、git rebase -i HEAD~4 #调整提交顺序
before: after :
5、git push origin master
切到本地仓库中的“master”分支,获取所有的提交,再到远程仓库“origin”中找到“master”分支,将远程仓库中没有的提交记录都添加上去,搞定之后告诉我。
6、git push origin <source>:<destination>
git push origin foo^:master # 本地分支foo上次提交记录推送至远程master分支
git push origin master:newBranch # 本地分支master推送至远程newBranch分支
7、git push origin :foo 、 git fetch origin :bar
git push origin :foo #表示删除远程分支foo
git fetch origin :bar # 表示本地新建bar分支,如果没有的话
8、git pull origin master:foo
before: after:
9、git tag v1 c1 #给c1提交记录添加标签v1
10、git describe <ref>
<ref>
可以是任何能被 Git 识别成提交记录的引用,如果你没有指定的话,Git 会以你目前所检出的位置(HEAD)
输出结果:<tag>_<numCommits>_g<hash>
tag
表示的是离ref
最近的标签,numCommits
是表示这个ref
与tag
相差有多少个提交记录,hash
表示的是你所给定的ref
所表示的提交记录哈希值的前几位。