リモートブランチがある場合、My_Remote_Branchが最終的にPRでマスターにマージされます。そしてブランチは私だけが働いているので、git pushの起点を作るのは危険ですか?My_Remote_Branch -fgit push origin -f remote_branchを隔離されたブランチに置き換えます。
答えて
"危険"は相対的な用語です。人々はおよそ--force
危ないという話を何
、彼らはあなたが簡単に終わることができる2つの異なるシナリオを参照している:あなたの分岐履歴が効果的にリモートにいくつかのコミット、そのため、あなたのプッシュが含まれていません
その仕事を削除します。
リベースの場合、または
commit --amend
の場合は、コミットハッシュIDを変更して、古いコミットに基づいて作成された他のブランチの混乱を作成します。
ブランチで作業している唯一の人は、問題#2は多分懸念されません。唯一の本当の問題は、複数のrepos(複数のマシン、またはマシン上の異なる場所にある複数の完全なrepos)から作業している場合です。その場合、あなた自身の仕事を上書きする可能性が稀にあります。
幸運なことに、#1の簡単な解決策は--force-with-lease
です(私の意見では、これは本当にデフォルトのオプションになります)。リモートブランチが元のブランチと一致しない場合は、これによりリポジトリにプッシュすることができなくなります。基本的には、あなたが知らなかった変更を上書きしたり、忘れたりするのを防ぐのに役立ちます。
残念ながら、--force-with-lease
は、問題#2に役立たないため、銀色の弾丸ではありません。他の開発者がブランチを使用しているか支店を構えている公開ブランチで作業している場合は、できるだけpush --force
を避ける必要があります。それが何らかの理由で必要と判断された場合は、誰もが驚かされることがないように、すべての人と調整する必要があります。
いいえ、特に危険はありません。
まず、あなたが押して歴史を「本当に」失うのは不可能です。 gitコマンドは実際にはコミットを破壊したり上書きしたりすることはありません(ガベージコレクションとは別に明らかに...)。そして、失われたものを見つけるためにgit reflog
のようなメカニズムがあります。
git push -f
の本当の危険は、他の協力者、特によく知られているチーム構造がないオープンソースソフトウェアのようなゆるやかなコラボレーションに多くの時間を浪費していることです。しかし、何もないので、あなたはそれをするのがぴったりです。
- 1. git push originとgit push origin masterの違い
- 2. Git push -f rebase modified 2 branch
- 3. git push origin masterとgit pushの違い
- 4. 'git push origin master'フリーズ
- 5. "git push origin master"フリーズ
- 6. git push http-origin mybranchname problems
- 7. git-svn:トランクブランチを別のブランチに置き換える
- 8. マスターブランチを別のブランチに置き換える - git merge -s ours?
- 9. `git push`は` git push origin newfeature`の省略形として機能しますか?
- 10. git rebase masterが誤ってgit push originの代わりにgit pullを実行した/ your_branch -f
- 11. masterをブランチに置き換えてください。
- 12. git push -fと同じ/反対のgit pull?
- 13. Gitエイリアスを置き換えるGET
- 14. git push -fからの復旧方法?
- 15. ブランチを書き換えることができません:git
- 16. git repoのブランチを変更履歴付きの別のブランチに置き換えてください
- 17. git push originでリモートgitブランチを削除できないのはなぜですか?branchname?
- 18. 与えられたファイルのテキストを置き換えます - FAKE F#MAKE
- 19. どのようにマージするためにマージされたgitブランチを一覧表示し、ブランチがうまく見えたら削除できますか?
- 20. git push git filter-branchが拒否されました
- 21. `git pull origin master 'をチェックアウト機能ブランチに入れます
- 22. Git Push originマスターハング - cygwin w/windows 7
- 23. gitリポジトリのコードを完全に置き換える方法
- 24. `git push origin <branchname>`スローエラー `HTTPベーシック:アクセスが拒否されました`
- 25. 隔離された.EARファイル内に配置されたjboss 4.2.2でのWebモジュールの隔離
- 26. GIT:未lossing変化ブランチ切り離さHEAD
- 27. git push -u origin masterは実行できません
- 28. Gitはpush origin masterを毎回リポジトリに送ります。
- 29. git logまたはgitkの上流ブランチが見えません
- 30. git push -u origin masterが失敗しました
あなたがこのブランチで作業している場合(共有されていない場合) - 危険ではありません。とにかくリベースやスカッシュをする場合は、実際には強制的にプッシュする必要があります。 – Alexan
危険性なし。しかし、(あなたが自分の仕事を、別のコンピュータから上書きするようなまれなシナリオを防ぐために)ちょっとしたことで、 '' --force-with-lease'(http:// weiqingtoh.github.io/force-with-lease/) – JDB
@Alexan私はいつもリベースしますが、まれにしか私はちょうど-fを押しません。ありがとう=) –