我是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