我正在使用Git + Gerrit,结果比我预期的要多一点。
由于尚未达到学习曲线的顶部;我丢失了对文件所做的一些更改。
我认为这些更改可能是在之前的提交中,这种提交在Gerrit似乎需要的merge-and-rebase歌曲和舞蹈例程中以某种方式成为孤儿。
如何查看影响特定文件的所有提交(孤立或未孤立)的列表,以便我可以逐个查看并尝试查找更改?
答案 0 :(得分:2)
不了解Gerrit和“合并并重新组合歌曲和舞蹈”的部分,但是在Git中你可以随时恢复(除非你采取特殊措施来防止这种情况)。
首先检查您感兴趣的内容:
git reflog -- <file>
一旦知道(差)孤立提交的ID,您就可以执行以下操作之一:
git merge <commit_id>
或
git reset --hard <commit_id>
两者之间的选择取决于您,并取决于以下因素(其中包括):
编辑:
发现了一个有趣的伎俩:
git cherry-pick -n <commit_id>
这将是你的当前HEAD的孤立提交,但不会自动提交更改 - 你可以检查不相关的东西,只保留对相关文件的更改。
注意:我从未使用过rebase,因此可能会出现这种伎俩需要某种适应你的情况
答案 1 :(得分:0)
您可以使用log
获取提交列表。这样做会在所有分支上显示对file1的更改(有关更多信息,请参阅git-log
的联机帮助页):
git log -g --pretty=oneline --all -- file1