[解決済み] Githubのフォークをクリーンアップして、クリーンなプルリクエストを行うにはどうしたらいいですか?
質問
Github でリポジトリをフォークしました。私はいくつかの小さな変更を行い、上流にプルリクエストを提出しましたが、途中で私のフォークが非常に混乱し、きれいなプルリクエストを生成することができなくなりました。
私の問題は 最新のコミットのみをプルする に関連しているようですが、新しいブランチを作成してチェリーピックでコミットを取得すると、まだ余分なものが残っています。私は リベース も試しましたが、今では マイマスター のクリーンコピーを生成することができません。 アップストリーム . これは、どうやら、私が をマージするのではなく、リベース 私がしようとしているのは、その結び目をほどき、有益に前進できるようなきれいな状態に戻す方法を見つけ出すことです。
私は自分のフォークを吹き飛ばし、上流の新しいフォークを作りたいのですが、それも難しいようですね。
Gitの罪を告白した後、どうすればgithubの赦しを得られるのでしょうか?
どのように解決するのですか?
ステップ1: 上流の変更を取り込む
で説明されているように、上流レポを "upstream" として追加することが推奨されます。
レポをフォークする
のページで説明されています。
git pull --rebase upstream master
は
--rebase
オプションはマージなしで最新のコミットの上にあなたの変更を配置します。
ステップ 2: (オプション) あなたのコミットを 1 つのコミットにマージする
git reset --soft upstream/master
このコマンドは、すべてのコミットを取り消しますが、ファイルは変更しません。そのため、一度のコミットですべての変更をコミットすることができます。
git commit -a
ステップ3: 変更の確認とテスト
変更を表示するために、組み込みの
gitk
,
ソースツリー
,
トータスギット
または
タワー
(有料)
など。
ステップ4:プッシュ
git push
はエラーを投げます。なぜなら、プッシュするとターゲットリポジトリの履歴が変更されてしまうからです。
ステップ3で示した変更が正しいと確信が持てたら、"-f"でプッシュします。
git push -f origin master
追加情報
リモートを追加するコマンドは
git remote add upstream git://github.com/[username]/[project].git
また、直接URLから引っ張ってくることも可能です。
git pull --rebase git://github.com/[username]/[project].git
しかし、その場合、他のステップで "upstream/master" の代わりに最新のアップストリームコミットのハッシュが必要になります。
関連
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ファイルをリセットしたり、特定のリビジョンに戻したりするにはどうすればよいですか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] GitHubでフォークされたリポジトリを更新または同期するにはどうすればよいですか?
-
[解決済み] GitHubのREADME.mdに画像を追加する方法とは?
-
[解決済み] マージされたGitブランチをすべて削除するにはどうすればよいですか?
-
[解決済み】"git pull" でローカルファイルを強制的に上書きするには?
-
[解決済み】Git リポジトリに空のディレクトリを追加するには?
-
[解決済み] 対話式リベースを中断する方法(--abort が効かない場合)?
-
[解決済み] Git のリモート HEAD を master 以外に指定するように変更する
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
undefinedmaster -> master (non-fast-forward) と git ! [拒否] master -> master (フェッチファースト)
-
Git エラー: ヒント: リモートにあなたが持っていない作業が含まれているため、更新が拒否されました ヒント: あなたが持っていない作業です。
-
コミットメッセージが空だったため、コミットを中止する git commit
-
[解決済み] GitHubで2つのブランチの差分を取るには?
-
[解決済み] git diff を stdout に書き出すには?
-
[解決済み] SourceTreeを使用して、ビットバケット上にレポを作成せずに、ローカルレポをビットバケットにプッシュするにはどうすればよいですか?
-
[解決済み] CVS から Git への移行: $Id$ 相当?
-
[解決済み] GitとSSH、どちらのキーを使うか?
-
[解決済み] どのブランチとマージしたいかを言わずにpullするように言われました。
-
[解決済み] Git の 'master' ブランチを 'release' にリネームするには?