gpt4 book ai didi

merge - HG merge : Outstanding uncommited changes

转载 作者:行者123 更新时间:2023-12-01 04:36:53 29 4
gpt4 key购买 nike

我有一个文件,version.txt 和其他文件。我更改了其他文件,但没有触及 version.txt。

因此,我尝试推送提交,但看到了 Remote heads 错误。 (有一个修改 versions.txt 文件的变更集)

我做了一个hg pull,然后是hg update

错误是:abort: crosses branches (merge branches or use --clean to discard changes)

然后我尝试了 hg merge:abort: outstanding uncommitted changes (use 'hg status' to list changes)

但是我不明白,为什么versions.txt不是我修改的,为什么不能直接 merge 。

这是我将要做的很多事情,即开发和 merge ,以与主要开发库保持一致。我该如何解决这个问题?

Mercurial 状态:

M printbox/web/printbox/controllers/ct_adm_colas.php
M printbox/web/printbox/controllers/ct_adm_jobs.php
M printbox/web/printbox/controllers/ct_form_configurar_cola.php
M printbox/web/printbox/core/MY_Controller.php
M printbox/web/printbox/css/estilos.css
M printbox/web/printbox/js/js_tablas_colas-jobs_ajax.js
M printbox/web/printbox/models/md_cola.php
M printbox/web/printbox/models/md_job.php
M printbox/web/printbox/views/vw_tabla_colas.php
M printbox/web/printbox/views/vw_tabla_jobs.php
A printbox/web/printbox/core/MY_Model.php
? .idea/.name
? .idea/encodings.xml
? .idea/misc.xml
? .idea/modules.xml
? .idea/printboxweb.iml
? .idea/scopes/scope_settings.xml
? .idea/vcs.xml
? .idea/workspace.xml

EIDT:在遵循建议的修复之前和之后,图表日志如下所示:

o  changeset:   19:e21fa7b131b0
| tag: tip
| parent: 17:54f59f253460
| user: JCV
| date: Tue Apr 22 12:33:36 2014 -0300
| summary: # Modificar nombre de producto para version
|
| @ changeset: 18:a03eaad764cd
|/ user: Jorge S <js@fusiondev.com.ar>
| date: Wed Apr 23 16:28:01 2014 -0300
| summary: Eliminar método que no se utiliza.
|
o changeset: 17:54f59f253460
| user: Jorge S <js@fusiondev.com.ar>
| date: Mon Apr 21 17:25:23 2014 -0300
| summary: Incluir SWHelper en Printbox.php
|


@ changeset: 21:1698791a9310
|\ tag: tip
| | parent: 20:3bfa1251da1b
| | parent: 19:e21fa7b131b0
| | user: Jorge S <js@fusiondev.c
| | date: Thu Apr 24 13:59:25 2014 -0300
| | summary: Merge
| |
| o changeset: 20:3bfa1251da1b
| | parent: 18:a03eaad764cd
| | user: Jorge S <js@fusiondev.c
| | date: Thu Apr 24 13:57:23 2014 -0300
| | summary: Commit de archivos
| |
o | changeset: 19:e21fa7b131b0
| | parent: 17:54f59f253460
| | user: JCV
| | date: Tue Apr 22 12:33:36 2014 -0300
| | summary: # Modificar nombre de producto
| |
| o changeset: 18:a03eaad764cd
|/ user: Jorge S <js@fusiondev.c
| date: Wed Apr 23 16:28:01 2014 -0300
| summary: Eliminar método que no se utili
|
o changeset: 17:54f59f253460
| user: Jorge S <js@fusiondev.com
| date: Mon Apr 21 17:25:23 2014 -0300
| summary: Incluir SWHelper en Printbox.php

最佳答案

好吧,忘了version.txt吧,这里不相关。您有 2 个存储库,一个在您的系统上,另一个在远程。

当你第一次尝试推送时,你试图在远程仓库上发送一个变更集,你得到一个错误,说你不能推送第二个头,除非你发出一个--force 选项。这是因为其他人已经先于您,并将变更集(修改 version.txt)推送到同一分支(您所谓的主线,实际上也是一个分支) , 它可能被称为 default)。

你接下来做的很好,你从远程仓库中提取了更改来解决 2 头问题。通过这样做,您就是默认情况下最终获得 2 个正面的人。这很好,很容易解决,我们很快就会解决。

你现在的状态应该是这样的

% hg log --graph
o changeset: 14:3cfac6413110
| tag: tip
| parent: 10:d573f47ecc2d
| summary: vb
|
| @ changeset: 13:d8edfdb0532e
|/ parent: 10:d573f47ecc2d
| summary: commit to subr2
|

现在当您执行 hg update 时它变得复杂,因为 mercurial 注意到您的 repo 有问题。您将需要通过 merge 来解决 2 头问题,就像 mercurial 的建议一样。

但是,执行 hg merge 会给您带来第二个错误,这次是因为您还没有提交 repo 协议(protocol)中的所有更改。现在你有2个选择。当您尝试使用 hg status 命令时,您会看到那些文件前面带有 M 吗?如果您确实修改了它们,并且想将它们包含在存储库中,请执行以下操作:

hg commit -m "Committing remaining files"
hg merge
hg commit -m "Merge"

这是提交剩余的更改, merge 2 个头,然后提交 merge 变更集。 mercurial 不想更新未提交更改的原因是出于安全原因。它不希望您失去当前的工作。这让我想到了第二种选择。但是,如果不需要修改文件中的更改,则可以放弃这些更改。您可能在困惑期间尝试了其他操作,更新了一些文件并使您处于中间状态。如果是这种情况,您可以通过执行以下命令(丢失您的更改)来快速放弃更改并解决问题:

hg update --clean
hg merge
hg commit -m "Merge"

更新将简单地清除存储库,并且可以进行 merge 。一旦 merge 提交,您就可以发出最后的推送。

hg push

如果您很幸运并且没有人向远程仓库推送任何其他内容,那么推送应该会成功。否则,您可以再次拉取、 merge 、提交和推送。

关于merge - HG merge : Outstanding uncommited changes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23253752/

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