コンテンツにスキップ
GitTree
リモコンと同期

リースで強制プッシュを使用する

すでにプッシュしたコミットを修正、リベース、またはリセットすると、通常のプッシュは拒否されます。 Force Push (With Lease)… はリモート ブランチを自分のブランチに置き換えますが、それは git push --force-with-lease のように最後にフェッチした場所に残っている場合に限られます。 GitTree は他の方法で強制プッシュすることはありません。

無料更新されました

GitTree で動作します 無料: サインインすると、すべてのローカル Git 機能が利用できます。

このページでは
  1. 始める前に
  2. どこで見つけられますか
  3. ステップ
  4. 期待される結果
  5. リースが守るもの
  6. 何か問題が発生した場合
  7. 質問
  8. 関連している

始める前に

  • すでにリモート上にあるコミットを書き換えましたが、そのままでは他の誰も必要としていないことがわかります。

どこで見つけられますか

  • コマンド パレット: Force Push (With Lease)…。
  • リモートがブランチを拒否したことを示すダイアログ内の Force Push…。
アクションmacOSWindowsとLinux
最初に Fetch All⌘⇧FCtrl+Shift+F

ステップ

  1. 最初にフェッチする

    GitTree がリモート ブランチの現在場所を認識できるようにフェッチします。リースは最後に取得したものと照合されます。

  2. 確認事項を読んでください

    Force push … to …? は、どのコミットがリモートから削除されるかを示し、リモートが取得したコミットにまだある間のみプッシュが続行されることを示します。そのヒントは refs/ogt/trash に保管されています。

  3. 強制プッシュ

    Force push …を押します。 Cancel がデフォルトです。

期待される結果

リモート ブランチは、書き換えられたブランチと一致します。置き換えられたコミットはローカルに保存され、復元できます。

リースが守るもの

最後のフェッチ後に誰かがブランチにプッシュした場合、GitTree は … moved と言い、何も置き換えません。フェッチして何が移動したかを確認し、それをブランチに取り込んでから、再度決定します。

何か問題が発生した場合

「最初にフェッチ: ... リースする上流にフェッチされていません」

GitTree はリモート ブランチの場所を知る必要があります。フェッチしてから、再度強制プッシュします。

「このブランチをチェックして強制的にプッシュしてください。」

強制プッシュはチェックアウトされたブランチで機能します。まずはチェックしてみてください。

質問

強制プッシュを元に戻すことはできますか?

リモコンは「元に戻す」では変更されません。もう一度押すと元に戻ります。置き換えたチップは refs/ogt/trash の下に保持されるため、ブランチとして復元してプッシュできます。