2014-03-31 114 views
0

我很新的GIT,道歉如果這是一個基本的問題,但我似乎無法找到類似的情況後搜索谷歌和stackoverflow。這裏是我的場景: 我有一個最新的提交版本的git文件夾,我不執行任何提交(我不會對我的本地目錄中的代碼做任何更改)。其他人在他們的計算機上執行提交,我只需要獲取特定的提交版本,將其複製到工作目錄並構建代碼。我打算製作一個程序,每天重複循環自動執行這些步驟。步驟總結如下:自動化的GIT repo同步,得到舊的提交版本,驗證版本

  1. 獲取最新提交的repo_folder
  2. 回到老犯版本
  3. 複製到work_folder
  4. 然後建立代碼work_folder

我不是確定這些步驟是否是正確/最好的方式。另外,如何正確執行#2以及如何確保我的程序檢索到正確的提交版本?是否有必要?或者我可以直接在repo_folder中構建代碼(可能會在構建之後修改某些文件),然後執行git命令以再次獲取最新的提交版本?

這裏是我的步驟實際步驟

1.獲取最新提交的repo_folder

回購的init -u SSH://[email protected]:1234/manifest.git -b分支-m file.xml

回購同步

獲得最新的回購後,我通過日誌搜索和執行的git的復位 - 硬

2.回到老犯版本

CD內的.repo /體現

COMMITHASH = git log --grep=$keyword | head -1 | cut -d' ' -f2

的git的復位 - 硬$ COMMITHASH

CP file.xml NEW_FILE .xml

repo init -m new_file.xml

執行此命令後,我不知道如何檢查我的當前版本是否正確。

步驟3和4只是簡單的複製和構建與此問題無關的命令。

CP -r repo_folder /文件夾1 work_folder /文件夾1 CP -r repo_folder /資料夾work_folder /文件夾2 運行版本。蝙蝠

+0

'回購初始化-m new_file.xml'這是什麼應該做的? 'init'沒有'-m'選項 –

+0

它將選擇存儲庫中的清單文件。 http://source.android.com/source/using-repo.html –

回答

0

只是clone當地的主人到一個新的目錄,然後checkout到您當前需要的是一個版本:

不復制,不瞎。

git clone -l /path/to/master /path/to/working 
cd /path/to/working 
git checkout -f REV_OR_BRANCH_ID 

如果您有任何生成的文件,例如對象是清除它們是一個好主意 - 結賬後如用make clean

從此您可以:

cd /path/to/working 
git pull 
git checkout -f REV_OR_BRANCH_ID