您喜欢/无法生活的Git命令

时间:2011-03-23 20:18:18

标签: git configuration command-line

任何人都有一些git的宝石应该添加到每个基础安装?一些很酷的命令,你不能没有,因此将它们添加到.gitconfig [别名]的

ps:看到一些关于其他事情的问题,希望它是最好的地方

3 个答案:

答案 0 :(得分:2)

我最近发现一个我非常喜欢的实际上是git的贡献目录,因此很容易获得:它被称为git new-workdir

它允许您为存储库创建第二个工作目录,而不会复制整个存储库。这允许你同时在两个独立的分支中工作,这对我来说非常方便。

答案 1 :(得分:1)

我得到的一些(随机网站,不记得在哪里)

查看所有提交的漂亮树状视图:

lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative

获取最后一个提交者

whois = "!sh -c 'git log -i -1 --pretty=\"format:%an <%ae>\n\" --author=\"$1\"' -"

显示最后一次提交

whatis = show -s --pretty='tformat:%h (%s, %ad)' --date=short

答案 2 :(得分:1)

这将为您提供lalc,它们会向您显示严格按“作者”或“提交”日期排序的在线日志。 pretty规范中的“u”与“unix时间戳”相关。 unix时间戳仅包含在排序中并在以后删除。时间的ISO版本仍然存在。

alias.la=! log () { git log --pretty=lau $1 | sort -rn | cut -d " " -f 2- | less ; } ; log  
alias.lc=! log () { git log --pretty=lcu $1 | sort -rn | cut -d " " -f 2- | less ; } ; log
pretty.lau=format:%at %C(dim yellow)%h %C(cyan)%ai%Cgreen%d %Creset%s
pretty.lcu=format:%ct %C(dim yellow)%h %C(cyan)%ci%Cgreen%d %Creset%s

用法为git la <commit specifiers>,因此可以是git lagit la branchgit la C1..C2。但请注意,..仍以通常的log方式运行。排序只是后期处理。

这是另一个:

> cat ~/bin/git-advance 
#!/bin/bash
C="`git log --first-parent --format=%H ..$1 -- | tail -1`"
if [ -z "$C" ]; then
    echo "Could not determine next commit"
    exit 1
fi
git checkout "$C"

当然,alias.advance=! git-advance。使用情况为git advance <future-commit>,并会检查从当前HEAD到给定<future-commit>的下一次提交。这将导致分离的HEAD,但我发现将git的提交手动传播到另一个VCS很方便。没有保证,也没有尝试复杂的历史。

以下是合并冲突中错过重命名的实验性内容:

https://gist.github.com/894374