2014-03-30 25 views
0

如何識別在特定功能分支上修改的文件。查找僅在功能分支上進行的更改

場景:

我一直在一個數據倉庫環境的腳本,在這裏我們部署的源代碼,不同的環境進行測試git的,我們沒有一個編譯程序。

我們有大約30個功能分支,我們追溯到主分支以檢查是否有任何功能分支已經上線,並保持使用生產代碼更新其他功能分支。

此時,我們使用以下命令在功能分支上選擇2個提交點並部署修改後的文件。

git show --pretty="format:" --name-only ${OLDCOMMIT}..${NEWCOMMIT} | sort | uniq > $FileList 

但是,這使我們測試了在其他分支上修改的腳本。

我們希望通過挑選當前功能分支上已修改的更改並部署這些文件進行測試來最小化測試活動。

而且腳本可以忽略在其他分支上修改的文件,因爲這些腳本已經被其他功能分支開發者測試過了。

回答

0

您可以只使用一個簡單的diff命令做到這一點:

git diff master HEAD --name-status 

哪裏HEAD是您當前分支。如果你想每次提交這在feature但不是在master,那麼你可以使用一個版本範圍,而不是:

git log master..HEAD --name-status 

你可以閱讀更多有關使用revision/commit ranges from the Pro Git guide