git hack
git log <hash> | 到提交散列值hash为止 |
git log <hash>.. | 从hash之后到最新的提交为止 |
git log <hash1>..<hash2> | 从hash1之后到提交hash2为止 |
git ls-files | 列出修改的文件 |
git dff | 查看缓存区和工作区的差别 |
git diff --cached | 查看最新提交与缓存区的差别 |
git diff HEAD | 查看最新提交与当前工作区的差别 |
git log\ git log HEAD | 到最新提交为止,即所有提交 |
git log HEAD~\git log HEAD~1 | 到倒数第二次提交为止 |
git log HEAD~~\git log HEAD~2 | 到倒数第三次提交为止 |
git log HEAD~2.. HEAD~1 | 从倒数第三次提交到倒数第二次提交为止,即仅倒数第二次提交。 |
git revert HEAD | 直接取消提交 |
git reset - -soft HEAD~1 | 回复到前一次的提交,并且工作区不变。 |
git reset - -hard HEAD~1 | 恢复到前一次的提交,并且工作区完全恢复到提交上一次时的状态。 |
git tag ver1 HEAD~1 | 为上一次提交的版本,打上tag ver1 |
git tag -l | 查看标签列表。 |
git branch ver1x-branch ver1 | 以标签ver1的提交为起点,创建一个分支。 |
git merge ver1x-branch | 把ver1x-branch 上的内容合并到master,可能需要解决冲突。 |
git format-patch ver1..ver2 | 提取补丁文件。可以用tag,hash |
git archive --format=tar --prefix="hello-v2/" ver2 > hello-v2.tar | 提取源码树,并且不包含.git目录。 |
git branch -r | 可以显示追踪分支的列表 |
git remote show | 可以查看远程仓库的相关信息。 |
git rebase master | 让开发分支复位基底 |
git rebase --continue | 冲突修改后,继续进行复位。 |
git send-mail | 可以发送邮件。设置格式等。 |
git fetch | 跟git pull的区别是不会进行merge |
git stash | 将工作区中还未提交的修改保存并移动到其他分支时使用。可以使用pop |
git cherry-pick | 将其他分支下的1个提交到使用当前分支时使用。 |
git gc | 删除未使用的对象或文件。 |
git am | 从mbox格式的文件导入补丁并提交。 |
git bisect | 用来指定导入了bug的提交。 |
源自:linux内核精髓(HACK#4)