3

私はGitを初めて使用するので、ご容赦ください。

私は Git リポジトリ (GitHub 上) を持っており、Git に不慣れなコーダーがたくさんいます。彼らを雇うときは、マージする前に彼らの変更を確認できるように、リポジトリに対してプル リクエストを送信するよう依頼します。現時点での私の最大の問題は、多くの場合、彼らがフォークした後、プル リクエストを行う前に私のリポジトリに変更をマージすることです。つまり、プル リクエストをマージすると、以前のコミットが上書きされます。

問題を回避するように伝える以外に、これが起こらないようにする方法はありますか?

4

2 に答える 2

2

これが起こらないようにする方法は、早送りで適用できないコミットを拒否することです。
しかし、ユーザーが最初に自分のフォークを更新せずにプルリクエストを送信することを妨げるものは何もありません。

正しいプル リクエストは、順送りの方法で適用する必要があります。つまり、コントリビューターは、プル リクエストを行う前に、宛先リポジトリの最新のコミット (つまり git pull --rebase) の上に自分の作業をリベースする必要があります。

つまり、プルリクエストの前に、マージした他の変更を自分のローカルリポジトリに統合し、コントリビューションがまだ機能していることをテストする必要があります。
そうする場合、以前のコミットを上書きしても問題はありません。
存在する場合は、プル リクエストを拒否するだけで、最初にローカル リポジトリをリベースするようコントリビューターに依頼できます。

于 2012-09-16T08:34:43.860 に答える
1

難しい方法: マージする前に (ローカル) ブランチを作成するように依頼します。

簡単な方法: 「問題を回避する方法」を忘れて、問題を解決する方法を伝えましょう。git では、git reflog(ほぼ) あらゆる変更をロールバックできます。

PS マージは、以前のコミットを「上書き」しません。git log ; git resetreflog がない場合でも、(ほとんどの) 修正に使用できます。

于 2012-09-16T08:27:21.203 に答える