当我使用我的源代码工作时,我做了我惯常的事情提交,然后我推送到远程存储库.但后来我注意到我忘了在源代码中组织我的导入.所以我做了修改命令来替换以前的提交:
> 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)
我该怎么办?(我可以访问远程存储库.)
我有一个存储库,它有一些不好的提交(本例中为D,E和F).
ABCDEF主和原点/主
我专门用一个修改了本地存储库git reset --hard.我在重置之前选了一个分支,所以现在我有一个看起来像的回购:
A-B-C master
\ D-E-F old_master
A-B-C-D-E-F origin/master
Run Code Online (Sandbox Code Playgroud)
现在我需要这些糟糕提交的一些部分,所以我选择了我需要的位并做了一些新的提交,所以现在我在本地有以下内容:
A-B-C-G-H master
\ D-E-F old_master
Run Code Online (Sandbox Code Playgroud)
现在我想把这种状态推到远程仓库.但是,当我尝试做一个git pushGit时,礼貌地给我刷掉了:
$ git push origin +master:master --force
Total 0 (delta 0), reused 0 (delta 0)
error: denying non-fast forward refs/heads/master (you should pull first)
To git@git.example.com:myrepo.git
! [remote rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@git.example.com:myrepo.git'
Run Code Online (Sandbox Code Playgroud)
如何让远程仓库获取本地仓库的当前状态?