2016-12-14 58 views
2

我想列出在travis上拉取請求時修改的所有文件。在Travis中的拉取請求中修改的列表文件

我試過$(git diff --name-only $TRAVIS_PULL_REQUEST_BRANCH $(git merge-base $TRAVIS_PULL_REQUEST_BRANCH master))但git不知道TRAVIS_PULL_REQUEST_BRANCH,因爲它在分叉回購。

我也嘗試過使用git rev-list和$ TRAVIS_COMMIT_RANGE,但它也包含主分支上的新提交。

任何想法如何獲得PR獨家修改的文件?

回答

3

你快到了。

在這種情況下沒有理由使用環境變量$TRAVIS_PULL_REQUEST_BRANCH

Travis中的源代碼樹將被合併回最近的目標分支($TRAVIS_BRANCH,可能爲master)。也就是說,HEAD是合併到$ TRAVIS_BRANCH中的拉取請求。

你想要的僅僅是可與

$(git diff --name-only HEAD $(git merge-base HEAD $TRAVIS_BRANCH)) 

或點 - 點 - 點符號短

git diff --name-only HEAD...$TRAVIS_BRANCH 

感謝檢索您的拉請求,並master之間變化@ostrokach

如果你想檢查內容

只考慮修改和添加的文件也很有趣
git diff --name-only --diff-filter=AM HEAD...$TRAVIS_BRANCH 
+0

完美,非常感謝! –

+2

有一個簡寫:'git diff --name-only HEAD ... master'(帶三個點)。有關更多信息,請參閱[此處](http://stackoverflow.com/a/7256391/2063031)。 – ostrokach

+0

'致命的:模棱兩可的論點'HEAD ... master':未知的版本或路徑不在工作樹中。' –