3

多くのオープンソース プロジェクト (例: django ) には GIT ミラーがあり、これらはプライベートまたはパブリック開発用にフォークされています。GIT ミラーは、最新の状態に保たれていますgit svn rebase。しかし、Pro Git Bookには次の明確な推奨事項が含まれています。

ああ、しかし、リベースの至福には欠点がないわけではありません。これは次の 1 行に要約できます。

公開リポジトリにプッシュしたコミットをリベースしないでください。

そのガイドラインに従えば、問題ありません。そうしないと、人々はあなたを憎み、友人や家族から軽蔑されるでしょう.

何かをリベースすると、既存のコミットが破棄され、似ているが異なる新しいコミットが作成されます。コミットをどこかにプッシュし、他の人がそれらをプルしてベース作業を行った後、それらのコミットを git rebase で書き直して再度プッシュアップすると、共同作業者は作業を再マージする必要があり、あなたがしようとすると物事が混乱します。彼らの仕事をあなたの仕事に戻します。

Django のようなオープンソース ミラーは、公開リポジトリにリベースしないという上記の太字の規則を破っていますか? そうでない場合、なぜですか?もしそうなら、「通常の」リベースされていない Git プロジェクトで実行できるこれらのミラーを使用して実行できないことは何ですか? これが明白な質問である場合はお詫びします。私はGitの初心者です。

4

1 に答える 1

2

アイデアは次のとおりです。

  • Git ブランチが a の直接の結果であるものは何でも、git svn rebaseリベースすべきではありません: dcommit を成功させるために、その履歴は最初にインポートされたままにしておく必要があります
  • 他の Git ブランチ (SVN ブランチに直接リンクされていないもの) は自由にマージ/リベースできます。

git-svn を使用した svn での簡単なマージも参照してください。

したがって、さまざまな Django リポジトリのマージ/リベースの影響を受けるブランチが dcommit (SVN リポジトリに同期するため) に関係するブランチでない場合は、問題ありません。

于 2010-10-05T06:08:47.710 に答える