2016-10-15 12 views
0

私はGitを初めて使う人です。 GitHubで、私は貢献するための第三者プロジェクトをフォークしました。新しいPRがマスターにマージされるたびに、現在の状態を維持するためにフォークを更新する必要があります。フォークされたリポジトリのホームページでは、New pull requestをクリックし、ベースとヘッドフォークを交換し、新しいPRを作成してそれを自分のコピーにマージします。GitHubでPRをサブミットするときのコミット履歴をクリアするには?

しかし、これは、私がPRを提出するたびにコミット履歴のコミットのリストがますます大きくなることに気付きました。 PRを提出する前または後に、それらのコミットをすべて1つに統合するにはどうすればよいですか?私はVisual Studio 2015を使用しています。

私はコミットをスカッシュする必要があると思いますが、私はVS上でそれを行う方法がわかりません。

答えて

0

プッシュリクエストを使用しないでください。代わりに元のレポのリモートをプロジェクトに追加してから、最新のコードの上にリベースすることができます。

Visual Studioで今
git remote add theirs https://www.github.com/original/project.git 
git fetch theirs 

(またはコマンドラインから)あなたは右の彼ら/ masterブランチをクリックして、上にリベースを選択することができます。これによりローカル履歴が書き換えられ、最新のコードの上に変更が反映されます。

リベースするとローカルgitコミットIDが変更されることがあるので、自分のgithubフォークに強制的にプッシュする必要があります。最新のバージョンが先行してローカルコミットが最新バージョンのコードの上で再生されるので、リベースが行われるときに変更をマージする必要があります。

このプロセスでは、最新の変更が含まれる最もきれいな履歴が表示されます。

rebase/force-pushが難しい場合は、それらの/ masterからローカルブランチに通常のマージを行うこともできます。リモートを追加した後、最新の変更をフェッチしてから、Visual Studioでマスターブランチを右クリックし、 "Merge into"を選択して変更をローカル作業ディレクトリにマージします。

関連する問題