[英]How can I list commits for a specific file including all changed files in Git?
[英]How can I see the list of all commits that affect a specific file with git (including orphaned or dangling commits)
我正在使用Git + Gerrit,结果比我预期的要多一些。
由于尚未达到学习曲线的顶部; 我丢失了对文件所做的一些更改。
我认为这些更改可能是在先前的提交中,该提交在某种程度上已经变成了Gerrit似乎要求的合并并变基础的歌曲和舞蹈程序的一部分。
如何查看影响特定文件的所有提交(孤立或未孤立)的列表,因此我可以一个接一个地浏览它们并尝试查找更改?
不了解Gerrit和“合并和还原歌曲与舞蹈”部分,但是在Git中,一旦您提交就可以始终还原(除非您采取特殊措施来防止这种情况)。
首先检查您感兴趣的提交:
git reflog -- <file>
知道您的(较差的)孤立提交的ID后,您可以执行以下操作之一:
git merge <commit_id>
要么
git reset --hard <commit_id>
两者之间的选择取决于您,并且取决于以下因素(以及其他因素):
编辑:
找到了一个有趣的把戏:
git cherry-pick -n <commit_id>
这将在您当前的HEAD上增加您的孤立提交,但不会自动提交更改-您可以签出无关的内容,仅保留对相关文件的更改。
注意:我从未使用过rebase,因此可能这种情况下需要对您的情况进行某种调整
您可以使用log
获取提交列表。 这样做将在所有分支上显示对file1的更改(有关更多信息,请参见git-log
联机帮助页):
git log -g --pretty=oneline --all -- file1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.