我需要在以前的提交中运行“git show”,但是需要为特定文件运行。我使用了下面的命令,但它不起作用。在特定文件上的上一个SHA中的“Git show”
混帐显示SHA〜1:FILE_PATH
可能是什么可能工作的命令?
我需要在以前的提交中运行“git show”,但是需要为特定文件运行。我使用了下面的命令,但它不起作用。在特定文件上的上一个SHA中的“Git show”
混帐显示SHA〜1:FILE_PATH
可能是什么可能工作的命令?
我无法重现您的问题,因为此命令应该工作。
这个命令显示了完整的文件,因为它是在你要告诉它的特定提交上。
如果你想显示上提交该补丁到本地WORKDIR的差异,使用语法来代替:
git diff <revision> <path>
git diff SHA~1 file_path
如果你想显示该文件的补丁,使用
git log -p -1 <revision> <path>
感谢您的及时回应,但我只想用“git show”而不是其他命令。 有反正我可以得到以前的命令,而不是使用sha〜1吗? –
为了得到你的头的父母提交,你可以使用'git log --pretty ='格式:%H'HEAD^-1' – blue112
感谢您的评论。 我想获得一个任意sha的前一个sha,而不仅仅是头部sha。 –
在提交时运行git show
只会显示与该提交相关的差异。来自documentation:
对于提交它显示日志消息和文本差异。
如果你想看到的差异对于一个特定的文件,你需要使用git diff
与range syntax:
git diff SHA-1^:path/to/file..SHA-1:path/to/file
这将显示您在path/to/file
的差异与指定的SHA-提交之间1及其父母,参考SHA-1^
。您可以阅读关于ancestry references的文档中引用父母提交的不同方式。
'git show
我明白了。你在用什么外壳? –
其实我没有使用shell命令。 我正在使用gitpython来运行git命令。 'res = repository.git。show(“%s:%s”%(revision,'file_path'))' 但它不适用于 'res = repository.git.show(“%s:%s”%(revision +'〜1' ,'file_path'))' 我发现git也没有使用类似的命令。 –
'git show:'将显示该特定路径的内容。你想要什么? –
torek
@torek我认为OP希望看到特定文件的补丁。但这就是'git diff'的作用。 –
我想在特定的版本之前获取某个版本的特定文件的内容。 git show:正在工作,但不幸 git show :不起作用。 –