6

個人的には、gitまたはgitkを使用したLinuxリポジトリを見ると、大量のマージ/ブランチに完全に圧倒されています。何が起こっているのか全くわかりません。

一般に、パブリックリポジトリには、可能な限り線形の履歴を作成し、少数のブランチ(たとえば、master、maint、next、pu-それだけ)を作成しようとしていると想定しました。つまり、マージはめったになく、ほとんどの場合リベースが使用されると思いました。どうやら私は間違っています。

  1. git/linuxのメンテナが簡単に概要を把握するために何をしているのだろうか
  2. なぜ彼らはリベースをより頻繁に使用し、master、maint、next puだけよりもはるかに多くのブランチを持っていないのですか?
4

4 に答える 4

3

Git と rebase の関係で理解しておくべき非常に重要なことが 1 つあります。

Do not rebase commits that you have pushed to a public repository.

ローカルでマージに取り組んでいる間は、ローカルであるため、何度でもリベースを使用できます。直線的な歴史が好きなら。つまり、彼らが行ったリベース作業は表示されません。

支店の数に関するその他の部分は、単に一種の経験であり、それ以上にコンセプトの問題です。私は並行して 300 以上のブランチで分岐を行いました..これは、規則と優れたコンセプトを使用して獣を飼いならすようなものにすぎません。

于 2012-04-01T16:10:24.233 に答える
2

私はカーネル開発者ではないので、彼らを代弁することはできません。 これは、Linus がそれについて話している参考文献であり、あなたの質問に答えていると思います。ランダムなブランチがたくさんあると混乱することを付け加えておきますが、それに少しの順序を課すことで、IMHOブランチを簡単に作成できます。(順序の例としては、意味のあるコミット メッセージを含め、トピック ブランチに という名前を付けるtopic/short_name、開発者が外部ドキュメントを保持して実際に相互に対話する、または環境に適したものを何でも指定することが考えられます。)

実際には Git の読み取りが必要であり、あなたの質問に当てはまるため、このワークフローへの参照も含めます。

于 2012-04-01T16:20:12.360 に答える
0

Greg KH Ask a kernel developerコラムをチェックしてください。彼は自分のワークフローを詳しく説明しています。Greg はかつて安定版ブランチのメンテナーでした。彼は、USB を含む多くのサブシステムの現在のメンテナーです。

于 2012-11-20T13:02:58.103 に答える
0

git リポジトリのクローンを作成する場合、すべてのリモート ブランチを取得できますが、1 つのローカル ブランチのみを作成してチェックアウトすることに注意してください (通常はmaster、追跡remotes/origin/master) 。

(これが、「すべてのリモート git ブランチをローカル ブランチとして追跡する」のような質問がある理由です)

関心のあるトピックに応じて、特定の 1 つのブランチのみをチェックアウトして追跡し、いくつかの作業を行い、その上にローカル ブランチを定期的にリベースしorigin/branchて作業を最新の状態に保ちます。

公式のパブリック ブランチから自分のブランチにマージすることはありません。これは逆マージになるため、「共有フィーチャー ブランチを使用する適切な git ワークフローとは?」で説明されているように、回避する必要があります。

于 2012-11-20T12:51:34.810 に答える