如何列出由 git pull/git merge 修改的文件?

Wol*_*eTD 6 git

在我们的一个项目中,MysQL-Dumps 与 git 同步。数据库中的每个表一个文件。拉取/合并后,转储通过钩子导入到本地数据库。现在的问题是,我需要找到所有通过 pull 更改的表转储以仅导入这些。我怎样才能让后合并挂钩知道哪些文件发生了变化?在合并之前可能不仅仅是一次提交,通常还有更多的提交。

如何获取已修改文件的列表?

Chr*_*ris 6

git diff --name-only SHA1 SHA2

使用git log获得git的承诺IDS。仅git diff SHAx当您只想与您拉出的最新头部进行比较时使用。

在你git pullgit loggit status获得 SHAx 之前。git fetch在合并之前,您可以执行而不是拉取并执行日志和差异。

  • 是的,SHA1 是我的 HEAD,但我如何获得正确的 SHA2? (2认同)
  • 您可能可以解释您的答案,并用您提议的内容的描述来阐明它。 (2认同)

小智 5

我发现的最简单的方法是

git diff --name-only HEAD@{0} HEAD@{1}
Run Code Online (Sandbox Code Playgroud)

因为HEAD@{n}表示第 n 个先前值HEAD