回答
git push有一个选项--force-with-lease
。这样做
git push --force-with-lease
会做什么,你的愿望,只有强制更新远程分支,如果它仍然是相同版本的远程跟踪分支(即origin/branch
)。
您也可以明确地指定某个版本,如果你想检查另一个版本:
git push --force-with-lease=branch:someCommitHash
这让我感兴趣。只是为了确保我明白:只要你在重写历史的时候不取回,你应该没问题。即紧接在'--force-with-lease'之前获取'with-lease'部分(因为它可能更新“origin/branch”)。 –
不,如果您重写历史记录(以任何方式)并且使用'--force'强制推送,您将覆盖遥控器上的任何内容,而不管在那里发生了什么。同时,使用'--force-with-lease'代替强制推送和覆盖所有内容*,但只有*当远程分支没有发生任何事情时,确保你不覆盖你不知道的东西。 – poke
当然,但如果你在使用'--force-with-lease'之前立即获取,那么'origin/branch'将会是“最新的”(即使你重写的“branch”不是)。这意味着如果您获取,没有'--force-with-lease'提供的保护。 –
- 1. Heroku:'git push -f'后如何“git pull”
- 2. 如何从git push -f恢复?
- 3. git ---如何在Linux上安排`git push`?
- 4. git push -f origin master和git push origin master之间的区别--force?
- 5. Git push -f影响主分支
- 6. Git:停止git push
- 7. Vaadin @Push与Vaadin4Spring安全
- 8. 做git修改需要一个git push -f?
- 9. git pull类似于/与git push -f相反?
- 10. Git push upstream
- 11. GIT Push如何工作?
- 12. 如何用JGit做git push?
- 13. 如何修复git push name?
- 14. 如何让'git push'像'git push origin branch'一样工作?
- 15. git push --receive-pack选项和安全性:如何防止黑客入侵?
- 16. 如何撤消git pull或git push?
- 17. 使用Qt Creator的git push
- 18. 在git push运行时运行其他git命令是否安全?
- 19. git push .git/description file
- 20. git push heroku master
- 21. git rebase master错误地执行了git pull而不是git push origin/your_branch -f
- 22. git push git-credential-winstore失败
- 23. git push heroku master issue
- 24. git push error git-receive-pack
- 25. 如何在git push中使用正确的git帐户?
- 26. 使用git push的问题
- 27. cordova hot-code-push插件安全
- 28. 我该如何从一个错误的git push -f origin master中恢复?
- 29. git push问题
- 30. Heroku - git push
为什么不干脆不使用武力推?你是什么意思你“重组”历史? –
这个问题的要点:当试图重写历史记录时,必须强制推送更新远程。但是,在从远程获取最新版本并重写它到强制推送的时间之间,可能会在远程发生其他更改。所以为了安全起见,在你强制推送之前,你应该再次提取,以确保你不会覆盖以前没有见过的新东西。但是'fetch && push -f'仍然允许发生变化的(非常短的)中断。因此,我们希望只有一个“强制推送 - 但是只要是远程的,仍然是提交XY”。 – poke
参见http://stackoverflow.com/a/18505634/6309和(用于恢复强制推送)http://stackoverflow.com/a/20423029/6309 – VonC