2015-12-03 65 views
2

我有一個GIT存儲庫,每個文件夾及其子文件夾中都有一個build.xml文件。我只需要將這些build.xml文件與存儲庫中的目錄結構進行檢出。文件夾結構將隨着時間的推移而被修改,所以我希望解決方案是動態的。如何從GIT存儲庫中遞歸檢出所有文件名的發生?

一個選項是檢出整個存儲庫,然後刪除除build.xmls以外的所有文件。但我想保留它作爲最後的選擇。有沒有更好的方法或完成任務的單線程?

即使簽出的骨架目錄sttrucure沒有被GIT跟蹤,我仍然可以使用該解決方案。

+0

你想讓這個骨架目錄結構被Git跟蹤嗎? –

+0

不是@TimBiegeleisen。即使檢出的骨架目錄結構未被GIT跟蹤,我也可以使用它。 –

+0

您是在運行Windows還是Linux的某種風格? –

回答

1

爲你做的是採取以下步驟最簡單的事情:

1)將目錄更改到本地的Git庫的根目錄(其中包含各種build.xml文件)

2)不要git pull origin branch讓你的本地回購文件(包括build.xml文件)最新與遠程

3)然後選擇性地build.xml文件從回購複製到一個新的位置:

find . -name 'build.xml' -exec cp --parents \{\} /new_location \; 

上面的find命令會將整個目錄結構移動到/new_location,在這種情況下,它是根目錄下的一個目錄。

根據您的Linux野心,您可以創建一個可以自動執行所有操作的腳本。

+0

你能解釋你正在使用的參數嗎?特別是'\ {\}'和'\;' – hinneLinks

+0

請參閱[本Unix Unix交換文章](http://unix.stackexchange.com/questions/83593/copy-specific-file-type-keeping-the-文件夾結構)以獲取更多信息。在任何情況下,我認爲有選擇地從存儲庫的新副本複製'build.xml'文件是這裏的方法。 –

+1

非常感謝@TimBiegeleisen。 –

相關問題