35 git
git commit --amend --allow-empty
Run Code Online (Sandbox Code Playgroud)
然后
git push origin master
Run Code Online (Sandbox Code Playgroud)
git 说
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'remoteurl'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
为什么?如何解决这个问题?
Von*_*onC 60
问题不在于您正在推送空提交。
它是关于推送与已推送的一个提交不同的提交(具有不同 SHA1 的提交)。
这就是这样git commit --amend做的:它修改了最后一次提交,它不会创建一个新的提交。
这意味着您正在推动与其他人可能已经克隆的历史不同的历史。
如果您确定这不会有问题,则需要强制推送:
git push -f origin master
Run Code Online (Sandbox Code Playgroud)
你是否应该这样做:
git commit --allow-empty
Run Code Online (Sandbox Code Playgroud)
您将创建一个新的(空)提交,您可以毫无问题地推送该提交。
小智 5
如果你想在 Github 上创建拉取请求。你可以:
git commit --allow-empty -m "make pull request"
Run Code Online (Sandbox Code Playgroud)
然后创建拉取请求而不做任何更改。
| 归档时间: |
|
| 查看次数: |
42021 次 |
| 最近记录: |