【发布时间】:2019-11-03 11:37:52
【问题描述】:
使用带有 git 存储库和已签出分支的构建机器。过了一段时间,事情发生了变化,历史被改写,东西被压扁,精心挑选并合并到开发机器上的其他地方并推送到远程。
然后开发人员回到构建机器并点击构建脚本,该脚本会清理、重置、获取,然后尝试拉出一些分支并构建它。不幸的是,这与已经在这台机器上构建的分支相同。而且由于事情发生了变化,它不能被快进并进入合并阶段。但是开发人员并不关心合并;如果可以的话,他们只会删除 repo 并再次克隆它,然后从远程签出分支。
但是,克隆 repo 和初始化所有子模块需要很长时间。那么,我们该如何帮助他们呢?克隆后如何让 git 存储库保持原始状态?
解决问题的可能脚本
git fetch
git clean -dfх
git submodule update --init --recursive
git reset --hard
git checkout -b $1 --track origin/$1 || echo ""
git pull # <-- nope, would not work
理论上,-b $1 可以更改为一些-b someuniqueid,只检查“另一个”分支,它可能会起作用。但这并不理想。想法?
【问题讨论】:
-
请edit 提出明确、具体的问题。
-
你要求我们送货
-
什么是原始状态?
-
我认为它和完美无瑕一样:) 我会更新问题
-
对不起。使用同义词无助于解释。您有未提交的更改吗?是没有变化的原始状态吗?
标签: git