Git cherry-pick 错误

4

我很真诚地说,我不知道如何完美地表达所有的内容,但是让我们尝试一下。

我正在尝试将git cherry-pick应用到我的远程分支(假设为sv/abc)中,例如:

    git cherry-pick b965749428dd3ec934614364d73158ac0bc121f8

起初,我遇到了一个错误信息:
    error: could not apply b965749... Changes 123
    hint: after resolving the conflicts, mark the corrected paths
    hint: with 'git add <paths>' or 'git rm <paths>'
    hint: and commit the result with 'git commit -c b965749'
    myAccount$ git status
    # On branch sv/abc
    # Unmerged paths:
    #   (use "git reset HEAD <file>..." to unstage)
    #   (use "git add/rm <file>..." as appropriate to mark resolution)
    #
    #       both modified:      fileA
    #       both modified:      fileB
    #
    no changes added to commit (use "git add" and/or "git commit -a")

所以,我继续修改了两个文件中的冲突:

Vim编辑文件
删除<<<<<<HEAD
删除>>>>> xxx========之间的所有内容(包括这两个标记)

然后运行git add <file>命令 奇怪的是,再次运行git status命令时,并没有显示已准备好提交的文件,也就是没有文件处于暂存状态

接下来,我尝试运行git commit -c b965749命令,结果显示没有要提交的内容

然后,我运行git push命令,结果显示已经是最新版本

然后,我又尝试重新运行之前的步骤,但这次使用了git reset <file>命令

这次它起到了作用,但是现在我遇到了一个新问题,这个哈希标识之前是由其他作者提交的。 当我运行git push命令时,会出现“无效作者”错误消息

我该如何解决这个问题?


你添加了什么文件到 git - 0xc0de
编辑过的文件 git add 文件A git add 文件B - Heng Kee Seng
你想重置作者信息吗?git commit --amend --reset-author - knittl
最好不要这样做,使用git commit -c的原因是为了保留作者信息,以便我们可以跟踪作者更改等。 - Heng Kee Seng
2个回答

0

您通过删除所有更改来解决了冲突。因此,git status 确定该文件在最终提交中应保持不变,因此它变为未暂存状态。当您对所有文件执行此操作时,提交将变为空,因此记录它没有意义。

您要求挑选提交,但不集成其任何更改,那么为什么首先要挑选呢?


0

当你执行删除部分时,你正在删除更改,因此文件与开始合并时一样,没有任何更改。

如果您真的想在您的存储库中进行合并提交,您可以执行 git commit --allow-empty,因为您的提交不会进行任何更改。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接