GIT repo sync的自动化,获取较旧的提交版本,验证版本

时间:2014-03-31 07:30:49

标签: android git version-control commit

我是GIT的新手,如果这是一个基本问题,请道歉但是在搜索google和stackoverflow后我似乎无法找到类似的情况。这是我的情景: 我有一个git文件夹,其中包含我不执行任何提交的最新提交版本(我不会对本地目录中的代码进行任何更改)。其他人在他们的计算机上执行提交,我只需要获取特定的提交版本,将其复制到工作目录并构建代码。我打算制作一个程序,每天在重复循环中自动执行这些步骤。步骤总结如下:

  1. 获取repo_folder中的最新提交
  2. 返回旧提交版
  3. 复制到work_folder
  4. 然后在work_folder中构建代码
  5. 我不确定这些步骤是否是正确/最好的方法。另外,如何正确执行#2以及如何确保我的程序检索到正确的提交版本? #3是否必要?或者我可以直接在repo_folder中构建代码(可能在构建后修改一些文件),然后执行git命令再次获取最新的提交版本?

    这是我的步骤实际步骤

    1。获取repo_folder

    中的最新提交
      

    repo init -u ssh://username@git.aaa.com:1234 / manifest.git -b branch -m file.xml

         

    repo sync

    在获得最新的回购后,我搜索日志并执行git reset --hard

    2。返回旧提交版

      

    cd .repo / manifests

         

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

         

    git reset --hard $ COMMITHASH

         

    cp file.xml new_file.xml

         

    repo init -m new_file.xml

    执行此命令后,我不确定如何检查当前版本是否正确。

    步骤3和4只是简单的复制和构建与此问题无关的命令。

      

    cp -r repo_folder / folder1 work_folder / folder1   cp -r repo_folder / folder2 work_folder / folder2   运行build.bat

1 个答案:

答案 0 :(得分: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