我是Python/Git newb,但我正在尝试编写一个脚本,该脚本需要两个分支或提交作为参数,并在两者之间显示已更改文件的列表,不是所有与常规差异相关的无关信息。获取两个提交或分支之间已更改文件的列表
这是通过使用
git diff --name-only FIRSTBRANCH...SECONDBRANCH
在bash脚本来实现,但使用gitpython它不转换为容易Python脚本。如果任何人有任何想法如何做到这一点,那会很棒。
编辑:继承人一些代码
user = str(sys.argv[1])
password = str(sys.argv[2])
currentBranch = str(sys.argv[3])
compBranch = str(sys.argv[4])
repo = Repo(directory)
currentCommit = repo.commit(currentBranch)
compCommit = repo.commit(compBranch)
diffed = repo.diff(currentBranch, compBranch)
打印差异将返回所有的差异细节时,我只想要更改的文件列表
@MattDMo我试过使用gitpython .diff功能,但它没有办法让我添加“--name-only”标志,据我所知,这将解决我的问题。如果是这样,那么这将是理想的。 – z0d14c 2014-08-28 19:53:31
它不会在您输出。你会得到一个Diff元素的列表,你可以从中得到你需要的任何位。例如,请参阅http://www.masnun.com/2012/01/28/fetching-changed-files-diff-between-two-git-commits-in-python.html。 (我认为这仍然是有效的或者曾经是,我实际上不知道,但看起来像文档所说的那样。) – 2014-08-28 19:54:56
@ z0d14c把不起作用的代码连同它的完整描述工作,在你的问题。 – Marcin 2014-08-28 20:07:00