我在提交消息中写了错误的东西.或者,我忘了包含一些文件.
如何更改提交消息/文件?提交尚未被推送.
我不小心修改了我以前的提交.提交应该是独立的,以保留我对特定文件所做更改的历史记录.
有没有办法撤消最后一次提交?如果我这样做git reset --hard HEAD^,第一次提交也会撤消.
(我还没有推到任何远程目录)
当我使用我的源代码工作时,我做了我惯常的事情提交,然后我推送到远程存储库.但后来我注意到我忘了在源代码中组织我的导入.所以我做了修改命令来替换以前的提交:
> git commit --amend
Run Code Online (Sandbox Code Playgroud)
不幸的是,提交不能被推回到存储库.这被拒绝了:
> git push origin
To //my.remote.repo.com/stuff.git/
! [rejected] master -> master (non-fast forward)
error: failed to push some refs to '//my.remote.repo.com/stuff.git/'
Run Code Online (Sandbox Code Playgroud)
我该怎么办?(我可以访问远程存储库.)
有没有办法修改提交没有vi(或你$EDITOR)弹出修改提交消息的选项,但只是重用前一条消息?
有办法从以后的提交中更改消息:
git commit --amend # for the most recent commit
git rebase --interactive master~2 # but requires *parent*
Run Code Online (Sandbox Code Playgroud)
如何更改第一次提交(没有父级)的提交消息?
我正在寻找git commit --amendMercurial 的反向部分,即修改我的工作副本链接的提交的方法.该修订程序的要求是:
如果可能,它不应该要求任何扩展.它不能要求非默认扩展,即没有官方Mercurial安装附带的扩展.
如果修改提交是我当前分支的一个负责人,则不应创建新的头.如果提交不是头,则可以创建新头.
该程序应该是安全的,如果由于任何原因修改失败,我希望在修改之前恢复相同的工作副本和存储库状态.换句话说,如果修改本身可能失败,则应该有一个故障安全过程来恢复工作副本和存储库状态.我指的是修改程序性质的"失败"(例如冲突),而不是与文件系统相关的问题(如访问限制,无法锁定文件进行写入,......) )
更新(1):
更新(2):
如何编辑或重新编写合并提交的消息?
git commit --amend如果它是最后一次提交make(HEAD),那么它会起作用,但如果它出现之前HEAD呢?
git rebase -i HEAD~5 没有列出合并提交.
我不时发现自己使用相同的消息进行修改.
通常,我这样做:
git commit --amend.无论如何要告诉git我不想更改提交消息(跳过打开文本编辑器并保存消息的步骤)?喜欢:
我知道我可以通过这样做来避免git启动我的文本编辑器git commit --amend -m "<message>".但这样我就不得不重新输入消息.
在我的本地仓库中,我有一个提交错误的提交消息.
我已经发布了错误的提交消息git push.
现在远程仓库(GitHub托管)也有不正确的提交消息.
我已经尝试了git commit --amend,但发现在这种情况下它对我不起作用,因为我已经做了额外的提交,因为不正确的提交.
你会如何解决这种情况?
通常,我只是跑
git add file
git commit
git push
Run Code Online (Sandbox Code Playgroud)
但如果我在推送之前修改了提交(with git commit --amend),则下一次推送失败
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.
Run Code Online (Sandbox Code Playgroud)
如何让git在不合并分支的情况下推送更改?我只有一个分支(master),我是唯一一个使用这个回购的人,为什么这么说呢?
git branch -a:
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
Run Code Online (Sandbox Code Playgroud)
编辑:使用gitk HEAD @{u},我看到我有2个分支,一个用原始提交,另一个用修改提交.