在线教程
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分支