Mercurial:在提交本地更改和推送之前没有拉。创建了8个+;头

Mercurial:在提交本地更改和推送之前没有拉。创建了8个+;头,mercurial,push,pull,Mercurial,Push,Pull,我在摆姿势的时候读了所有建议的问题,但最后我还是弄糊涂了:我做了一些改变,然后承诺并推动了它们。但后来我知道存储库被推到了,在我推到它之前。因此,我的问题是: 问题1。我的推送是否覆盖了存储库,即存储库是否不再具有在我之前推送的更改 问题2。在这种情况下我该怎么办?我需要有我所做的更改,还有其他更改,不需要让其他人拉我的代码,重新提交,重新推送,然后我再拉,只是为了得到相同的工作副本 第三季度。在提交/推送之前,是否可以隐式更新/拉取代码 第四季度。什么是重设基础选项?我在文档中读到过,但是我对

我在摆姿势的时候读了所有建议的问题,但最后我还是弄糊涂了:我做了一些改变,然后承诺并推动了它们。但后来我知道存储库被推到了,在我推到它之前。因此,我的问题是:

问题1。我的推送是否覆盖了存储库,即存储库是否不再具有在我之前推送的更改

问题2。在这种情况下我该怎么办?我需要有我所做的更改,还有其他更改,不需要让其他人拉我的代码,重新提交,重新推送,然后我再拉,只是为了得到相同的工作副本

第三季度。在提交/推送之前,是否可以隐式更新/拉取代码

第四季度。什么是重设基础选项?我在文档中读到过,但是我对代码所做的更改并不是私有的

假设:

  • 没有创建任何分支。(好吧,它们是创建的,但它们是不同的模块,我不关心它们)
  • 我使用Eclipse和MercurialClipse

  • 编辑:如果问题(可能)与现有问题重复,则表示抱歉。

    据我所知,Mercurial默认情况下,当推送将创建新的远程磁头时,不可能推送。
    换言之:如果其他人在你之前推动,而你没有加入并合并这些更改。
    但是,可以使用以下方法更改此行为:

    push -f
    
    你用过那个选项吗


    Spolsky先生在中更好地解释了这一点。

    据我所知,Mercurial默认情况下,当推送会创建一个新的远程磁头时,推送是不可能的。
    换言之:如果其他人在你之前推动,而你没有加入并合并这些更改。
    但是,可以使用以下方法更改此行为:

    push -f
    
    你用过那个选项吗


    斯波尔斯基先生在中更好地解释了这一点。

    你不能通过按来破坏远程更改。您可以使用
    -f
    创建多个磁头,但不能仅通过按创建销毁历史


    要查看存储库的状态以了解发生了什么,请使用
    hgserve
    并在浏览器中查看(可能)。然后,您可以直观地看到头和合并的状态。

    您不能通过按来破坏远程更改。您可以使用
    -f
    创建多个磁头,但不能仅通过按创建销毁历史


    要查看存储库的状态以了解发生了什么,请使用
    hgserve
    并在浏览器中查看(可能)。然后,您可以直观地看到头部和合并的状态。

    当我设法在hg中创建美杜莎回购时,我确定哪个分支将成为“主线”。然后我去每个支行执行以下流程:

    hg up -r subbranch
    hg merge -r mainline-branch
    hg commit -m "merged from main"
    hg up -r mainline-branch
    hg merge -r subranch
    hg commit -m "brought in the subchanges from subbranch"
    
    通过首先合并到子分支,我确保主线不会被损坏,然后我可以简单地合并到主线


    这不是一场重大危机;这只需要与其他开发人员一起工作,这样你们就可以在第二天左右再次访问同一个分支。

    当我设法在hg中创建美杜莎回购协议时,我决定哪个分支将成为“主线”。然后我去每个支行执行以下流程:

    hg up -r subbranch
    hg merge -r mainline-branch
    hg commit -m "merged from main"
    hg up -r mainline-branch
    hg merge -r subranch
    hg commit -m "brought in the subchanges from subbranch"
    
    通过首先合并到子分支,我确保主线不会被损坏,然后我可以简单地合并到主线

    这不是一场重大危机;这只需要与其他开发人员一起工作,这样你们就可以在第二天左右再次开始使用同一个分支

    第三季度。是否存在可以隐式更新/提取代码的情况 在我提交/推送之前

    在.hg/hgrc中,添加

    [hooks]
    pre-commit = hg pull -u
    
    第三季度。是否存在可以隐式更新/提取代码的情况 在我提交/推送之前

    在.hg/hgrc中,添加

    [hooks]
    pre-commit = hg pull -u
    

    您是否用
    -f
    标志按下了按钮?如果没有,那么你甚至没有创建新的头。如果您确实使用了它,那么您可能应该先拉合并。无论哪种方式,您都可以通过现在拉,如果有多个磁头,则合并、提交,然后再次推动来修复它。您是否使用
    -f
    标志推动?如果没有,那么你甚至没有创建新的头。如果您确实使用了它,那么您可能应该先拉合并。无论哪种方式,你都可以通过现在拉,如果有多个头,合并,提交,然后再推来修复它。这是我回购的状态:(恶心)进行hg合并告诉我我有12个头:(我想我们不知道如何使用VCS。你需要注意头部。首先确定你是否真的需要将任何头部作为单独的头部,或者它们是否都只是相同项目的变体。例如,一个头部可能是旧版本的热修复程序,因此你可能希望将该头部分开。对于其余部分,你需要合并嗯,所以一次取两个和两个头,更新为一个,与另一个合并,并承诺去掉其中一个头。然后冲洗并重复,直到你回到正确的头数。是的,这里似乎需要更多的学习。如果你想,你可以访问Mercurial room on Chat(),我将在那里呆一整晚(即,大约5-6个小时以上)如果你有问题或需要一些指导。我不是说我是专家,但我已经沿着你刚刚发现的路走了,所以我知道回到主干道的后路:)哇-令人印象深刻。以前从未见过这样的存储库:-)没关系,你不会再这样做了。我看到你在聊天,你都修好了吗?哈哈,是的,我不会再这样做了,其他人也不会这么说:)修好不了。我尝试执行hg up-r,然后执行hg commit--close分支。结果比我开始时更混乱,因为我基本上不知道自己在做什么。但开始使用龟甲,希望能从这些错误中吸取教训。这是我回购的状态:(恶心)进行hg合并告诉我,我有12个头:(我想我们不知道如何使用风投。)