当前代码库的精细git合并

guz6ccqo  于 2023-01-11  发布在  Git
关注(0)|答案(1)|浏览(123)

我在这里遇到了一些奇怪的问题,在做任何行动之前,我想得到一些建议。
我们有一个遗留项目,公司希望将其添加到git中。我的同事已经添加了git repo并将遗留代码提交到其中。但我怀疑它与live系统上的代码不太同步。由于我们计划在未来使用git,现在我们需要从live服务器添加/同步当前代码。到git repo的当前代码已经在repo上了。live服务器目前还没有被git处理。但是一旦我们执行了同步,就会被处理。我需要确保,live服务器上的代码会被git处理,忽略任何已经添加到git repo中的修改过的文件,并将继续像之前一样工作。之后我们将把那个git添加到staging服务器,在那里我们将与git和test同步,如果一切正常,我们将只同步live服务器。
希望这个场景解释得足够好,但如果没有-请让我知道,我会阐明更多的灯。
先谢了。
现场服务器继续与原始代码,而我们在同步整个代码库,传播在几个服务器。

flvlnr44

flvlnr441#

我需要确保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

相关问题