Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用GIT获取文件的修订数_Git - Fatal编程技术网

使用GIT获取文件的修订数

使用GIT获取文件的修订数,git,Git,我刚开始使用Git,我正在寻找一种方法来获取文件经过的修订数量 现在我正在使用命令: git diff master~(arbitrary number) main.js 我怎么知道这个数字能达到多高?我还想获得每次修订的日期。。谢谢 在git中,历史通常是非线性的,这就是为什么使用SHA-1来表示提交而不是修订号 我建议你用 git log -p filename 或 查看文件的历史记录(如果您需要) 如果您坚持这样做,那么: git log --pretty=oneline `git l

我刚开始使用Git,我正在寻找一种方法来获取文件经过的修订数量

现在我正在使用命令:

git diff master~(arbitrary number) main.js

我怎么知道这个数字能达到多高?我还想获得每次修订的日期。。谢谢

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

我建议你用

git log -p filename

查看文件的历史记录(如果您需要)

如果您坚持这样做,那么:

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

git log
是你的朋友

git log --pretty=oneline main.js | wc -l
git日志也有一些与diff和补丁相关的选项。试试看

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添加到包含

#!/usr/bin/env bash
git diff master~$(git log master --oneline `git log master --reverse --pretty=%H $@ | head -1`..master | wc -l )  $@
应该会派上用场。

试试这个

git log --pretty="format:%ai | %s" main.js
用于修订以及日期。您可以通过
wc-l
获取修订数量。要打印不同的信息位,请尝试

git help log

查看
格式:
参数到
--pretty
选项。

您得到的数字是
main.js
被更改的次数,而不是第一次和最近一次提交之间的“距离”,这正是Matt想要得到的
git help log