http://learngitbranching.js.org/是个学习git的网站,以游戏的模式一步步教会新手如何使用git,本文是记录我在玩的过程中,复习和学习到的git命令。
--------分割线--------
提交:
- git commit : 提交当前的版本
- git branch newImage : 创建新分支newImage
- git checkout newImage : 切换到分支newImage
- 参数-b : 创建新分支,同时切换过去
- git merge bugFix : 将分支bugFix合并到当前分支
- git rebase master : 将当前分支移植到Master分支上,并切换过去
- git checkout commitHash : 通过指定提交的hash值(前几位即可),将HEAD移到指定的提交上
- git log : 查看提交历史
- git checkout master^ : 切换到Master的父节点,HEAD分离
- git checkout HEAD~4 : 当前HEAD倒推4次,~是相对引用
- git branch -f master HEAD~3 : 强制移动到Master分支的父3级
- git reset HEAD~1 : 本地暂存区撤销最近一次提交,但是代码还在
- git revert HEAD : 新提交一次,使代码恢复到之前一次的状态
其他:
- git cherry-pick c2 c4 : 将c2和c4的提交复制到当前分支下
- git rebase -i HEAD~4 : 以交互式的界面将之前4次提交复制到新分支上
- git commit --amend : 修改本次提交
- git tag v1 [C1] : 对[提交C1,默认当前HEAD]标记tag为v1
- git describe master : 显示<最近tag>_<相差的提交次数>_g<当前提交hash>
远程:
- git clone : 克隆远程库
- git fetch : 本地获取远程库最新提交,不改变其他branch
- git pull : 等于git fetch + git merge origin/master 拉取远程库最新提交,合并到本地分支
- git push : 本地提交推送到远端库
- git pull --rebase : 合并远程库最新提交到本地,本地代码附加在最后
- git checkout -b foo origin/master : 创建本地分支foo,trace远程分支Master
- git branch -u origin/master foo : 将分支foo 关联trace远程分支master
- git push origin master : 将本地master分支推送到远端origin/master上
- git fetch origin <source>:<place> : 将远程source库的最新代码更新到本地place库,如果place不存在就主动创建