我在编辑提交时遇到问题。
我有2个.php
文件的2次提交。我的目标是编辑它们。我读到了rebase -i
,这是我认为应该做的事情:
pick
更改为edit
; git commit --amend
; git rebase --continue
。在此之后,我相信rebase再次停止,我必须再次为第二次提交做这件事。
但是在我输入git rebase --continue
之后我得到了这个:
file1.php: needs update
You must edit all merge conflicts and then
mark them as resolved using git add
问题是什么,我该怎么办?
答案 0 :(得分:5)
当你停下来换篮时,你必须:
git add changedFile
git commit --amend
git rebase --continue
根据您的描述,您可能忘记添加对索引的更改。在这种情况下,git commit --amend
什么都不做(修改没有变化)。另外,在编辑文件之前你有git commit --amend
这也是错误的(你必须修改你在文件上做过的更改)。
尝试按照我给出的顺序应用步骤。
答案 1 :(得分:1)
(代表OP发布解决方案)。
我找到了正确的方法:
git rebase -i --root (I wasn't able to find both commits using HEAD~2)
pick->edit for both commits
Ctrl+X and Y and ENTER
edit the first commit
git add file1.php
git commit --amend
git rebase --continue
edit the second commit
git add file2.php
git commit --amend
git rebase --continue
git push -f
希望这有助于至少一个人开始他们的git体验。 Szpak,你是一个很大的帮助。感谢。
答案 2 :(得分:0)
如果您在独自工作的功能分支上:
首先对文件进行更改并创建一个新的提交。
git commit -m "message here"
确保您在您的功能分支
git checkout your_feature_branch
git rebase -i parent_branch (the branch the your_feature_branch was forked from)
编辑器将弹出选项。将第 2 行的标记从 squash
更改。然后,您将可以选择编辑提交消息。您可以删除一条提交消息并使用不同的文本进行更新。
Shift+zz (exit for vi)
如果您在此处尝试 git push your_feature_branch
,您将收到以下错误:
$ git push your_feature_branch
To https://your_repo.git
! [rejected] your_feature_branch -> your_feature_branch (non-fast-forward)
error: failed to push some refs to 'https://your_repo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
由于您所做的本地更改,这是预期的 - 以克服此用途:
git push your_feature_branch --force
上面的命令会将更改推送到远程仓库。
注意: --force 的使用不是标准的或不推荐的,因此只有在您知道自己在做什么时才使用它。在这种情况下是允许的,因为假设您是唯一在 your_feature_branch 上工作的人
我假设您在功能分支上独自工作。