gpt4 book ai didi

version-control - 私有(private)更改的用例

转载 作者:行者123 更新时间:2023-12-04 06:50:51 25 4
gpt4 key购买 nike

假设我有以下场景:我从 URL X 克隆了一些开源项目。现在我有它的本地克隆。我对本地克隆进行了一些更改以尝试并在本地提交它们。现在我想要的是:

我想从开源项目 X 中获取更新。只需获取其所有最新代码,而无需我进行任何更改。但我希望我的更改存在于历史标记中的某个位置,以便以后可以获取它们。而且我不想为此单独克隆,希望将它全部放在我的一个仓库中。

现在我做了以下工作:

  • hg tag 标记我的更改
  • 从 URL X
  • 拉取并 merge 最新代码
  • 将存储库恢复为 URL X 的最新版本

  • 但我觉得这不是好方法,而且是迂回的。我认为有更好的方法。你能建议吗?

    最佳答案

    我会使用 bookmark 而不是标签.如果您使用 Mercurial 1.8 或更高版本,则您已经内置了书签功能。否则,您首先通过将以下内容放入您的~/.hgrc 来启用扩展。文件:

    [extensions]
    bookmarks =

    [bookmarks]
    track.current = True

    现在获取项目的克隆:
    hg clone http://bitbucket.org/user/X
    cd X

    并破解:
    # edit, edit, edit...
    hg commit -m 'Great new feature!'

    现在在这个变更集上添加一个书签
    hg bookmark mywork

    这就像一个标签,但书签的优点是当你进行新的提交时它会移动。这就像您在阅读书籍并移动书签时一样。创建书签后,您可以
    hg update mywork

    回到书签的变更集。

    当上游存储库发生更改时,您将它们拉入并 merge 到您自己的分支中:
    hg update mywork # if necessary
    hg pull
    hg merge
    hg commit -m 'Merged new upstream changes.'

    书签将向前移动,现在指向您刚刚创建的 merge 变更集。如果要更新到 X 中的版本,则
    hg update --rev -2

    将在您拉入更改后执行此操作 - 这会更新到 merge 之前的旧提示变更集,这是 X 的提示。

    关于version-control - 私有(private)更改的用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3163591/

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