git add -p
console有一个交互式的界面(如下图),让你一个一个文件的选择是add还是不add.注意这些文件必须是tracked过的, 也就是说如果你的新的文件从来没有add过,那么他不会出现在这个界面中.
- y - 表示要添加到stage
- n - 不要添加到stage
- q - 退出
- ? - 为帮助
git commit -a
把已经tracked过的, 但是后来修改过却没有add的文件也一并commit到HEAD中. 这样我们就不需要在commit之前先add了
git log -n <limit>
只看前几条的log, 类似于git log --max-count=3
git log --oneline
类似于 git log --pretty=oneline
git log -p
显示的信息更全一些, 包括每次commit的diff
git log --author="<pattern>"
只看某个人的log, pattern可以是一个正则
git log --grep="<pattern>"
搜索commit里面包含pattern的日志展示出来, pattern可以是一个正则
git log <since>..<until>
查看<since>和<until>之间的commit. since和until可以是commit ID, branch名
git log <file>
只查看某一文件的commit
git reset --hard
--hard会用最近commit到head里面的文件覆盖工作目录的修改
没有--hard的话会把staging还原到最近的一次commit但是工作目录的修改不会丢失
git clean -n
clean 是删除工作目录下没有tracked过的文件, -n不会真正的删除文件,他会告诉你哪些文件会被删除掉,但不会真正的删除, 它像是clean前的一起预演
git clean -f
-f = force 会真正的删除没有tracked过的工作目录下的文件
git clean -df
-d = directory 不仅删除文件还删除文件夹