2016-10-12 168 views
0

我已經使用vsts個人訪問令牌編寫了一個自動化腳本,以將項目中的所有存儲庫克隆到本地。劇本是從git中獲取特定存儲庫的最新更改

repoPaths=('repo1Url','repo2Url',etc...) 
for i in "${repoPaths[@]}" 
do 
    git clone $repPaths[i] $localPath 
done 

現在,我試圖在上面的bash腳本的一些變化來拉的最新變化,如果克隆是從可用所有回購的的。

請建議。

+0

當你運行'git clone',你會得到那個時刻的最新變化。 – ElpieKay

+0

你可以用一個例子來詳細說明'克隆是否可用'的含義嗎? –

+0

@Ashutosh Jindal:當你第一次運行腳本時,克隆被創建,現在說我對本地做了一些改變,現在如果我再次運行腳本,我想合併我的本地更改與最新,目前這不是實現。 – Vinodh

回答

0

您可以有2個步驟,一個將x目錄中的所有repos和一個克隆x目錄中的所有repos。像這樣的東西應該足夠了:

find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \; 

所以結合起來,這將會是:

find . -type d -depth 1 -exec git --git-dir={}/.git --work-tree=$PWD/{} pull origin master \; 
repoPaths=('repo1Url','repo2Url',etc...) 
for i in "${repoPaths[@]}" 
do 
    git clone $repPaths[i] $localPath 
done 

注:這將導致一些錯誤,看起來像fatal: destination path 'repo1Url' already exists and is not an empty directory.如果它已經存在

相關問題