【问题标题】:git merge without commiting local changes beforehandgit 合并而不事先提交本地更改
【发布时间】:2012-11-20 13:11:18
【问题描述】:

也许这已经回答过了,但我似乎找不到它。 让我来说明我的问题。我检查了一个 git 存储库,然后对文件进行了一些修改。这已经是前一段时间了,我现在想将存储库中的最新更新与我的更改合并。问题是,我不使用 git 作为版本控制,因为我们在日常操作中使用 mercurial。如何在不提交 git 的情况下获得最新的更改(无论如何我都做不到)。

【问题讨论】:

    标签: git merge commit


    【解决方案1】:

    将您的更改填充到 stash 中(使用 git stash),使用 git pull 从远程 repo 中提取,然后使用 git stash apply(或 pop,如果您确信它会起作用)。没有正式的提交。

    git stash
    git pull        # or: git fetch ; git checkout --force origin/master
    git stash pop   # or: git stash apply
    

    如果上游源代码和您自己的代码之间存在冲突更改,git 可以在这些情况下产生更易读的差异输出,并在 ~/.gitconfig - YMMV 中使用以下内容,但可能值得一试:

    [merge]
        conflictstyle = diff3
    

    【讨论】:

    • 这可能行得通,但我无法确认...使用工具合并不再可行,我复制了很多代码并对其进行了小幅更改,mergetools 无法正确识别更改
    • 嗯...您是说工具无法弄清楚如何处理重叠和冲突的更改?如果是这样,我可以理解,因为这我见过的所有工具集的一个棘手问题。
    猜你喜欢
    • 2012-05-08
    • 2022-08-18
    • 2022-06-11
    • 1970-01-01
    • 2017-07-14
    • 2017-09-02
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多