Git/Hg常见操作
git
对比stage的文件
$ git diff --cached
修改最后一次提交
$ git commit --amend
取消上一次的提交(未push前)
$ git reset --soft HEAD^
恢复所有被修改的文件
$ git checkout -f
将文件移出版本管理,但不删除
$ git rm --cached $file
提交时显示修改记录(之前都是$ git diff --cached
+ $ git ci -m
)
$ git ci -v
还原曾经被删除的文件
git checkout $(git rev-list -n 1 HEAD -- "$file")^ -- "$file"
http://stackoverflow.com/questions/953481/restore-a-deleted-file-in-a-git-repo
忽略mode权限(chmod)
配置:core.fileMode=false
, 如git -c core.fileMode=false diff
http://stackoverflow.com/questions/1580596/how-do-i-make-git-ignore-file-mode-chmod-changes
查看历史 详细
限制历史条数
$ git log -n 3
或$ git log -3
显示具体变动
$ git log -p
显示变动文件列表
$ git log --name-only
,
$ git log --name-only -1
,
$ git log --name-only --oneline
显示最近2次的具体变动
$ git log -p -2
简要显示增改行数统计
$ git log --stat
格式化输出
$ git log --pretty=oneline
(可以为oneline
, short
, full
, fuller
, 或者自定制, 如format:"%h - %an, %ar : %s"
)
过滤条件
--graph
--since/after
/--until/before
--author
--committer
--grep
--all-match
其他
连子模块一起更新
$ git pull --recurse-submodules
(v1.7.3+)
放弃本地修改提交,强制与服务器同步
$ git fetch origin
$ git reset --hard origin/master
hg
查看历史
限制历史条数
$ hg log -l 3
显示修改文件
$ hg log -v
显示具体变动
$ hg log -p
查看具体版本
$ hg log -r 652
$ hg log -r a7b97cdfac3c
$ hg log -r 652:654
$ hg log -r 650 -r 654