在线教程

https://learngitbranching.js.org/


git修改默认编辑器

git config --global core.editor vim


遇到unrelated history提示时无法merge

git merge <对应的分支> --allow-unrelated-histories

git合并历史提交


git修改历史commit的注释


git清理悬空对象


git分支回退

git checkout -f master HEAD~3    #head回退到3个提交前,并且master分支也退回到3个提交前
git checkout -f master HashValue
git branch -f master HashValue    #branch移动到指定的commit上,但HEAD没动
git checkout HashValue        #HEAD移动到指定commit上,但branch都没动
git reset    #HEAD移动到指定commit上,移动之前的状态与移动后的状态的diff保存在暂存区中

git rebase详解

git rebase b1 b2
#将b2分支接在b1分支的后面

git cherry-pick

cherry-pick可以将任何的历史提交记录追加到HEAD上

git tag

git tag tag-name <branch-name&nbs***bsp;HashValue>

git branch

git branch bugWork master^^2^
#在指定位置创建一个分支,但不切过去

多人合作时解决代码冲突

可以用rebase将自己的修改加到同事修改的后面
git fetch
git rebase origin/master
git push
或者
git pull --rebase
git push



也可以merge
git fetch
git merge origin/master
git push
或者
git pull
git push

本地分支与远程分支关联

方法一
git checkout -b local-branch origin/master
#local-branch与远程仓库origin中的master就此关联
方法二
git branch -u origin/master [local-branch]

本地分支与远程分支不对应push

git push origin master:my-branch
意思为: 将本地的master分支推送到远程的my-branch分支