当前代码库的精细git合并



我在这里遇到了一些奇怪的问题,在采取任何行动之前,我想得到一些建议。

我们有一个遗留项目,公司想把它添加到git中。我的同事已经添加了git repo,并将遗留代码提交到其中。但我怀疑它与实时系统上的代码不完全同步。由于我们计划在将来使用git,现在我们需要将当前服务器上的代码添加/同步到git的代码库中。到目前为止,git还不能处理实时服务器。但一旦我们执行了同步,就会。我需要确保,从实时服务器的代码将在git上,省略任何已经添加到git仓库的更改文件,并将继续像以前的git一样工作。之后,我们将把git添加到登台服务器,在那里我们将同步git和测试,如果一切正常,我们将同步实时服务器。

希望这个场景解释得足够好,但如果没有,请让我知道,我将更多地阐明它。

提前感谢。

Live服务器继续使用原始代码,同时我们同步整个代码库,分布在多个服务器上。

我需要确保,来自实时服务器的代码将在git上运行,省略任何已经添加到git repo的更改文件,并将继续像git之前一样工作。

这意味着你需要:

  • 获取服务器当前代码的本地副本
  • 重置Git存储库到它的第一次提交(在任何更改之前)
  • 将您的服务器代码添加到Git存储库中,在专用分支
  • 最后,将该分支合并到当前分支(这将保留任何最近的更改,但将使用专用分支的服务器代码更新未更改的文件)

:

cd /path/to/local/repository
git switch -c server_sync <your Initial commit before any changes>
git add --work-tree=/path/to/local/copy/of/server/codebase .
git commit -m "server sync"
git switch main
git merge server_sync

实际上,从评论中:

我们制作了repo,最后阶段的代码来自供应商的repo,现在我必须确保它与实时服务器上的代码相同,优先考虑来自服务器的代码

这样就更简单了:你不需要一个专门的分支:

cd /path/to/local/repository
git switch main
git add --work-tree=/path/to/local/copy/of/server/codebase .
git commit -m "server sync"
git push