[解決済み] githubでプロジェクトに貢献する、「masterの上に自分のプルリクエストをリベース」する方法
質問
私はgithub上のプロジェクトに貢献しています。github上のプロジェクトは
upstream
で、github でフォークしたレポは
origin
で、私の
local
のレポをパソコンで見ることができます。
git checkout -b feature
# Working on feature
git commit -a -m 'only commit on feature'
そして、プルリクエストを送信します。
git push origin master
プルリクエストをレビューし、関係のない変更を行う必要があります。他の誰かがコミットし
upstream/master
今度は私が
upstream
のメンテナから
"rebase my pull request on top of master"
これは私の物語です(Law and Orderの効果音を挿入)......。
私はプルリクエストに何の変更も加えていませんし、ブランチフィーチャーに同じコミットがあるままです。
git checkout master
git fetch upstream
git checkout feature
git rebase master
=> "Current branch feature is up to date."
git push origin feature
=> "Everything up-to-date"
私は理解できません。誰かがコミットしてマージしたことが分かっているのに、どうしてこんなことが可能なのでしょうか。
upstream/master
にプルリクエストをプッシュした後
origin/feature
?
このような場合、どのような手順が正しいのか、どなたか教えていただけませんか?
どのように解決するのですか?
上流レポのフェッチしか表示されません。それは実際にはローカル ブランチのいずれをも更新しません。それは
の知識を更新するだけです。
upstream
. あなたは
upstream/master
が完全に
master
と同じように
git pull
にリベースする前に
master
にリベースする前に、あるいはもっと単純に
upstream/master
.
すなわち
git checkout master
git pull upstream master
git checkout feature
git rebase master
または
git checkout feature
git rebase upstream/master
更新しました。
ローカルの
feature
ブランチを修正したら、それを
origin
に戻してプルリクエストの更新を終了します。あなたがプッシュしたのは
feature
を一度プッシュしているので、単純に
push
というのも、リベースは履歴を変更し、もはや fast-forward ではないからです。通常、" non-fast-forward" でプッシュが失敗した場合、プルを実行することでそれを解決しますが、プルは 2 つの異なる履歴を結合するだけで、それは絶対に望んでいることではありません。つまり、あなたの古い(リベース前の)
feature
ブランチが新しい (リベース後の) ブランチと一緒になってしまうのです。あなたが望むのは
を上書きする
origin/feature
の状態を、新しい
feature
ブランチの状態で、古いブランチの記録をすべてダンプします。つまり、fast-forward でないにもかかわらず、プッシュを強制的に行うには
git push -f origin feature
. 注意: 強制プッシュは
危険
で、コミットを失う可能性があります。何をやっているのか絶対に分かっている場合のみ使用してください。例えば、ここでは意図的にプレベースにある古い無駄なコミットを削除したい場合です。
feature
ブランチにある古い無駄なコミットを削除したい場合です。
関連
-
[解決済み] 現在のブランチのトラッキング情報がありません。
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Gitによるhotfixブランチのfeatureブランチへのマージ
-
[解決済み] Git で単一のブランチをクローンする方法を教えてください。
-
[解決済み] GitHub から特定のブランチをプルする
-
[解決済み] GitHubからフォークされたレポを削除する
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Featureブランチのリベースの後、Gitプッシュが拒否される。
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
gitの利用(ssh鍵の作成とgithubの利用)。
-
Gitのコミットでfatal: unable to auto-detect email addressのエラーが報告される。
-
[解決済み] gitでコミット間を前進・後退させる方法は?
-
[解決済み] フォルダからサブモジュールのリポジトリを作成し、そのgitコミット履歴を保持する
-
[解決済み] Git のプッシュが "non-fast-forward" で拒否されました。
-
[解決済み] Git の 'master' ブランチを 'release' にリネームするには?