繁体   English   中英

远程更改后,如何将本地工作目录带到任何git修订版,无论其分支如何?

[英]How to take local working directory to any git revision irrespective of its branch after remote changes?

背景

我正在研究一个phing构建脚本,该脚本将输入作为目标修订版本,生产代码库需要采用该修订版本。 我在单独的暂存器目录中准备了相同的内容,然后覆盖了生产代码库。

当前逻辑

  • 在每次构建期间,我只是清空暂存器,并在其中复制整个git存储库的新副本。
  • 进行所需的修订-

    git reset --hard $ {target.git_version}

我确信可以做一些更有效的事情。 我在想-

  • https://stackoverflow.com/a/1419637/351903中所述,找出其中包含所需提交的文件(已尝试过,但无法与git branch -r --contains <commit> -似乎我丢失了关于它的概念)。

  • 找到分支后,仅克隆该特定分支。

然后我想到了-

  • 仅将所有分支名称都放入我的本地存储库中(如果可能的话,这是有道理的)。

  • 然后git branch --contains <commit>

还想到了-

  • 遍历所有分支名称并检查它是否包含提交。

只需使用git checkout ${target.git_version}签出您想要的提交git checkout ${target.git_version}
以及为什么总是擦拭并重新克隆,只需fetch ,然后checkout就足够了。

我的脚本“ Phingit”可以帮助您完成所需的工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM