我最近将一个文件提交到我工作库的主分支。
然后我创建了一个新的本地分支来处理其他事情,但意识到我错过了原始提交的内容。我在新的分支机构进行了更改。请问git commit --amend工作,还是我需要重新提交?我正确地假设git commit --amend只是修改了我在新本地分支中的新文件中的git上的文件
答案 0 :(得分:1)
您当前的提交将修改当前分支的更改。
答案 1 :(得分:1)
修改仍在提交 - 它仍然发生在同一个分支上,所以:
意味着如果你进行git commit,它会在“new local branch”上添加一个新节点,甚至不会触及master。
$ git checkout master
// apply changes here
$ git commit --amend
这会创建新的提交REPLACING主分支的当前提示(很可能是您在那里执行的先前提交,除非您或其他人已在那里工作,之前的提交被推送等)。
$ git checkout master
// apply changes here
$ git commit -m "New commit, new commit message"
不太优雅。但是如果你推了?非常有吸引力。
// changes applied on local branch creating commit with SOME_SHA
$ git checkout master
$ git cherry-pick "new local branch name here"
这适用于“新本地分支”顶端提交引入的更改。如果分支太不相同,您可能会有冲突。
$ git rebase -i
在这里你需要将提交压缩成一个。只要你没有推动变化就行了!
如果你问我,有点过头了。 : - )
选项2或...... git revert SHA-of-original-commit
然后进行所有更改并提交。
如果原始提交中的某些内容真的很糟糕/有害,我只会使用它。