我可以修改从新的本地分支到 master 分支的提交吗?
Can I amend a commit to the master branch from a new local branch?
我最近提交了一个文件到我作品存储库的 master 分支。
然后我创建了一个新的本地分支来处理其他事情,但我意识到我在原始提交中遗漏了一些东西。我在新分支中进行了更改。 git commit --amend 会起作用,还是我需要重新提交?我是否正确地假设 git commit --amend 只是从我的新本地分支
中的新文件修改 git 上的文件
分店在'the problem'这里
修改仍在进行中 - 它仍然发生在同一个分支上,所以:
- 提交到 master
- 将分支切换到 "new local branch"
- 在那里进行更改
意味着如果你 git 提交,它会在 "new local branch" 上添加一个新节点,甚至不会触及主节点。
选项 1:git 在主分支上提交 --amend
$ git checkout master
// apply changes here
$ git commit --amend
这会创建新的提交,替换主分支的当前提示(很可能是您之前在那里所做的提交,除非您或其他人已经在那里工作,之前的提交已被推送,等等)。
选项 2:git 在主分支上提交
$ git checkout master
// apply changes here
$ git commit -m "New commit, new commit message"
不太优雅。但如果你推?非常有吸引力。
选项 3:git 提交 "new local branch" 和 cherry pick and squash
// changes applied on local branch creating commit with SOME_SHA
$ git checkout master
$ git cherry-pick "new local branch name here"
这应用了 "new local branch" 末尾提交引入的更改。如果分支差异太大,您可能会发生冲突。
$ git rebase -i
在这里您需要将提交压缩为一个。仅当您尚未推送更改时才这样做!
如果你问我的话,有点过头了。 :-)
"Oh no! I pushed!" 选项
选项 2,或者... git revert SHA-of-original-commit
然后进行所有更改并提交。
如果原始提交中的内容实际上是 bad/harmful,我只会使用它。
我最近提交了一个文件到我作品存储库的 master 分支。
然后我创建了一个新的本地分支来处理其他事情,但我意识到我在原始提交中遗漏了一些东西。我在新分支中进行了更改。 git commit --amend 会起作用,还是我需要重新提交?我是否正确地假设 git commit --amend 只是从我的新本地分支
中的新文件修改 git 上的文件分店在'the problem'这里
修改仍在进行中 - 它仍然发生在同一个分支上,所以:
- 提交到 master
- 将分支切换到 "new local branch"
- 在那里进行更改
意味着如果你 git 提交,它会在 "new local branch" 上添加一个新节点,甚至不会触及主节点。
选项 1:git 在主分支上提交 --amend
$ git checkout master
// apply changes here
$ git commit --amend
这会创建新的提交,替换主分支的当前提示(很可能是您之前在那里所做的提交,除非您或其他人已经在那里工作,之前的提交已被推送,等等)。
选项 2:git 在主分支上提交
$ git checkout master
// apply changes here
$ git commit -m "New commit, new commit message"
不太优雅。但如果你推?非常有吸引力。
选项 3:git 提交 "new local branch" 和 cherry pick and squash
// changes applied on local branch creating commit with SOME_SHA
$ git checkout master
$ git cherry-pick "new local branch name here"
这应用了 "new local branch" 末尾提交引入的更改。如果分支差异太大,您可能会发生冲突。
$ git rebase -i
在这里您需要将提交压缩为一个。仅当您尚未推送更改时才这样做!
如果你问我的话,有点过头了。 :-)
"Oh no! I pushed!" 选项
选项 2,或者... git revert SHA-of-original-commit
然后进行所有更改并提交。
如果原始提交中的内容实际上是 bad/harmful,我只会使用它。