gpt4 book ai didi

git - 我如何强制 git pull 在每次 pull 时覆盖所有内容?

转载 作者:IT王子 更新时间:2023-10-29 01:15:59 26 4
gpt4 key购买 nike

我有一个 CENTRAL 裸存储库,其中有三个开发人员存储库可以正常 pull 和推送到它。

我还有另外两个从 CENTRAL 裸仓库中提取的存储库:一个是实时服务器,另一个是测试/阶段服务器——每个都从各自的分支中提取。

场景是这样的:我在 CENTRAL 存储库上有一个 post-update Hook 脚本,它自动访问测试和实时存储库并在每个存储库上运行 pull 命令。这会同时更新测试服务器和实时服务器,一切都取决于哪个分支有新的提交。这一切都很好。

问题是这样的:在紧急情况下,有时可能会直接在服务器上更新文件(通过 ftp 或其他方式),然后 CENTRAL 更新后脚本将失败,因为会发生 merge/覆盖冲突。这种情况无法避免,而且不可避免。

我希望发生的事情是这样的:我希望从实时站点和测试站点 pull 以始终在 pull 时覆盖/merge 。 始终。这些存储库将是只 pull 式的,因为它们不用于开发。

在我所有的研究中,我找不到一个好的解决方案来让 pull 总是强制覆盖本地文件。这是可能吗?如果是这样,那将是一个很好的发展场景。

最佳答案

真正做到这一点的理想方法是根本不使用pull,而是使用fetchreset:

git fetch origin master
git reset --hard FETCH_HEAD
git clean -df

(将 master 更改为您想要跟随的任何分支。)

pull 旨在以某种方式将更改 merge 在一起,而 reset 旨在简单地使您的本地副本与特定提交匹配。

根据您的系统需求,您可能需要考虑略微不同的clean选项。

关于git - 我如何强制 git pull 在每次 pull 时覆盖所有内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9589814/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com