gpt4 book ai didi

git - 使用 Mercurial (hg),您是否可以只将您为不想推送的文件所做的所有提交都设为 "hg backout",然后进行推送?

转载 作者:太空狗 更新时间:2023-10-29 14:40:51 24 4
gpt4 key购买 nike

使用 Mercurial (hg),您是否可以“hg backout”您为不想推送的文件所做的所有提交,然后再进行推送?

因为 Mercurial(或 Git)不允许我们将单个文件或单个文件夹推送到另一个存储库,所以我在想:

1) 怎么样,我们只查看我们所做的提交,hg backout 我们不想推送的提交。

2) hg out -v 查看要推送的文件列表

3) 现在通过 hg push 进行推送

这个方法好吗?

这是因为我得到了以下建议:

1) 如果您不想推送该文件,请不要提交它(但有时甚至只是为了实验,我确实想保留中间修订版)(-- 也许我可以 hg commithg backout 以防止它被推送。)

2) 有些人告诉我只是从我要推送到的存储库中hg clone tmp,然后将本地文件复制到这个 tmp 工作目录,hg commit 到这个 tmp 存储库,然后进行推送。但是我发现hg clone tmp会占用400MB的新数据和文件,让硬盘工作很辛苦,就为了push 1个文件?所以我宁愿不用这种方法。

最佳答案

如果你执行hg backout,那么文件仍然会被推送,但在tip revision中会被忽略。远程存储库将接收变更集以添加文件,然后接收回退变更集以删除它们。因此它会包含您不想推送的文件的历史记录。

一旦您提交了一个文件,任何涉及该文件的变更集移动到另一个存储库都将包括对该文件的更改。如果您想做的只是防止 check out 远程存储库的尖端以包含该文件,那么您所描述的将起作用。如果不是,那么除了从不推送任何涉及相关文件的变更集之外,没有任何保留历史的方法来完成你想要的。您可以通过使用 convert 创建一个新的存储库来删除它,而不会留下任何不需要的文件的痕迹,但会生成一个具有新历史记录的新存储库。

关于git - 使用 Mercurial (hg),您是否可以只将您为不想推送的文件所做的所有提交都设为 "hg backout",然后进行推送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3041765/

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