2009-12-29 87 views
2

我刚刚开始使用Git,并且正在寻找一种方法来获取文件已进行修订的次数。获取GIT文件版本号

现在,我使用下面的命令:

git diff master~(arbitrary number) main.js 

我怎么知道我有多高这个数字去?我也想获得每个修订的日期以及..谢谢!

回答

1

试试这个

git log --pretty="format:%ai | %s" main.js 

的修订与日期一起。您可以通过wc -l来获取修订版本的数量。为了打印不同的信息比特,尝试

git help log 

,并检查了format:参数到--pretty选项。

+0

非常感谢,非常感谢! – Matt 2009-12-30 02:30:08

0

在git中,历史通常是非线性的,这就是为什么SHA-1用来表示提交而不是修订版本号的原因。

我建议你使用

git log -p filename 

git blame filename 

查看该文件的历史记录,如果这是你想要的。

如果你坚持,这将做到这一点:

git log --pretty=oneline `git log --reverse --pretty=%H filename | head -1`.. | wc -l 
1

git-log这里是你的朋友。

git log --pretty=oneline main.js | wc -l 

git log还有一些diff和patch相关的选项。不要尝试

git log -p main.js 

编辑:Iamamac在下面的评论中指出,上面给你做文件的编辑的数量。您真正想要的是自文件首次签入主文件以来提交的次数。怎么样

git log master --oneline `git log master --reverse --pretty=%H main.js | head -1`..master | wc -l 

这应该适用于任何分支。感谢您提出这个问题。我已经添加了一个git-master-diff到我的bin文件夹,其中包含

#!/usr/bin/env bash 
git diff master~$(git log master --oneline `git log master --reverse --pretty=%H [email protected] | head -1`..master | wc -l) [email protected] 

应该派上用场。

+1

您得到的数字是'main.js'改变了多少次,而不是第一次和最近一次提交之间的“距离”,这正是马特想要得到的结果 – iamamac 2009-12-29 08:34:22

+0

感谢您指出这一点。 – anshul 2009-12-29 09:43:27