https://learngitbranching.js.org
git rebase xxx 将xxx复制到当前分支下
git rebase A B 将B复制到A分支下
git merge a 将a合并到当前分支下
git pull origin a
= git fetch a 下载a
+git merge a 把a合并到当前分支
pull 也可以用 source:destination 先把source下载分支为des,再和本地分支合并
git branch -f 分支 ---> id
git revert HEAD //撤销最近一次提交
git revert HEAD~1 //撤销上上次的提交,注意:数字从0开始
git cherry-pick <提交号>... 把xxx 提交号复制到当前下
git rebase -i HEAD~4 调整最近4次的提交记录 这里不止可以调整记录,还可以删除记录
git rebase a b 把b移到a上,a是base
git commit --amend 用作提交在历史分支的修改 amend 意思是修订
git tag v1 c1 为c1打上标签tagv1 如果不指定c1 则默认是HEAD
git describe 描述这个分支的记录
git describe 的语法是:
git describe <ref>
<ref> 可以是任何能被 Git 识别成提交记录的引用,如果你没有指定的话,Git 会以你目前所检出的位置(HEAD)。
它输出的结果是这样的:
<tag>_<numCommits>_g<hash>
tag 表示的是离 ref 最近的标签, numCommits 是表示这个 ref 与 tag 相差有多少个提交记录, hash 表示的是你所给定的 ref 所表示的提交记录哈希值的前几位。
当 ref 提交记录上有某个标签时,则只输出标签名称
^后的数字只的是其父分支的第一个分支,在两个父分支A,B后merge中产生的master中才生效
git checkout master^2 到B
git checkout master^ 到A
git fetch 只是下载远程分支
git reset --hard o/maste 远程分支更新到master
git checkout -b 新建分支到节点
git checkout -b totallyNotMaster o/master
git branch -u o/master foo 设置远程的master为本地的foo
// 如果当前分支就是foo 也可以下面这样
git branch -u o/master
git fakeTeamwork
git push origin <source 本地的分支>:<destination 远程的分支>
git push origin master
head 是个节点 不是分支 推送的只能是分支 c1HEAD--c2--c3=master 这个时候gitpush 失败,因为HEAD上没有分支
git fetch origin foo
git push origin :side 删除远端的side分支
git fetch origin :bugFix 本地增加一个分支bugFix ---没啥用的