https://oschina.gitee.io/learn-git-branching/
git commit 提交
git branch bugFix 创建一个bugFix分支
git checkout bugFix 切换到bugFix分支
git checkout -b bugFix 上述两条命令的组合
git merge bugFix 当前在master分支,将bugFix与master分支进行合并
git rebase master 当前在bugFix分支,将bugFix分支rebase到master分支,与merge相比,可以创建线性的提交记录。
git checkout c4 分支分离,HEAD不再指向分支明,而是指向c4这样一条记录,c4为记录的hash值。
git checkout HEAD^ 指向HEAD的上一条记录,^:上一条记录,~n:上n条记录
git branch -f master bugFix 强制让master分支指向bugFix分支
git reset HEAD~1 向上回退一个提交,只影响本地库
git revert HEAD 以创建新记录的形式回退,提交到远程库可更新远程
git cherry-pick c3 c4 当前指向master,通过该命令可以将c3 c4记录抓到master下,改变分支顺序
git rebase -i HEAD~4 以交互式的方式重新排序HEAD往前的4条记录
git commit --amend 对当前记录做一个小小的修改
git tag v0 c1 给c1记录打上v0标记
git describe master 显示从最近的tag到master的路径
git checkout HEAD^2 指向HEAD的第二个父节点,不加2就是默认的指向第一个父节点
git clone 从远程仓库clone一份到本地
git fetch 抓取远程的数据
git pull 抓取并合并,是git fetch和git merge的组合
git push 从本地提交当前分支到远程
git rebase c1 c2 将c2 rebase到c1
git checkout -b foo o/master 检出一个foo分支并跟踪远程的o/master分支,这样就可以在foo分支上提交了
git checkout -u o/master foo 与上条命令类似,如果当前在foo分支上,最后的foo可以省略
git push origin <source>:<destination> 将源分支提交到目的分支,destination可省
git push origin :foo 如果远程有foo这个分支,则会删除远程的foo分支
git fetch origin <source>:<destination> 与push相反
git fetch origin :foo 如果本地没有foo分支,则会创建foo分支
git pull origin <source> 将source拉取到本地进行合并
git pull origin <source>:<destination> 将远程的source分支拉取到本地与destination分支进行合并,如果destination不存在则创建