首页 > 解决方案 > 使用 Interactive Rebase 更改提交的作者。未合并的路径

问题描述

新手来了 在我的私人存储库(仅限用户)中,我试图更改以前提交的作者姓名和电子邮件(我在 GIT 中配置了一个通用电子邮件地址,因此 Github 没有记入我在日历中的贡献)。

经过一番阅读,为了尝试一些提交,我正在使用

git rebase --interactive HEAD~<commit number>

我通过执行更改了文本编辑器中的作者姓名和电子邮件

exec git commit --amend --author="newName <newEmail>" -C HEAD

在我想要修改并保存的提交下。

之后,我尝试git --rebase continue并得到了这个:

src/App.js:需要合并 src/components/Navbar.js:需要合并 src/components/auth/Login.js:需要合并 您必须编辑所有合并冲突,然后使用 git add 将它们标记为已解决。

现在我有未合并的路径,我真的不知道应该如何解决合并冲突。

只有一个main分支 -git status现在是这样的:

interactive rebase in progress; onto 1f3deaf
Last commands done (10 commands done):
   pick 930c285 themecontext added
   pick b454a88 login/register added
  (see more in file .git/rebase-merge/done)
No commands remaining.

You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Unmerged paths:
  (use "git add <file>..." to mark resolution)

    both modified:   src/App.js
    both added:      src/components/Navbar.js
    both added:      src/components/auth/Login.js

no changes added to commit (use "git add" and/or "git commit -a")

关于我应该如何进行的任何想法?

标签: gitgithub

解决方案


我找到了一些资源(交互式 rebase 部分): https ://www.git-tower.com/learn/git/faq/change-author-name-email/

未合并的路径意味着您有冲突需要解决——我在这里假设您知道它们通常是如何工作的,以及如果文件中存在冲突(而不是作者冲突)并且这不是问题时如何解决它们。

所以......我相信你可以中止变基,并按照我上面链接的说明进行操作。

有趣的是文档(https://git-scm.com/docs/git-rebase)说组合 -i 和 -p 选项通常不是一个好主意(查看--preserve-merges),但在这种情况还不错,因为它是一个简单的变基(BUGS 通常与更改提交顺序或树结构的反直觉结果有关),并且遵循文章中的说明算作知道您在做什么。至少我是这么认为的。我不是 git老手,所以...我只是在 Internet 上找到了一些资源。

这些选项甚至是不兼容的,但看起来它们可以一起使用(嗯...?不知何故?)如果你知道你在做什么。


推荐阅读