web-dev-qa-db-ja.com

gitリポジトリを使用したワークフローはどうあるべきですか?

私はいくつかのgitリポジトリで作業していますが、ほとんどの場合2人以下で作業しています。主に私と私の上司。並行して作業する場合、マージコミットが原因で、「gitlog」があまり見栄えがよくないことがよくあります。私の上司はいつもそれについて不満を言っています。これは私の仕事を効果的にシリアル化するので、私はその事実を本当に嫌います。これらのマージコミットを防ぐには、常に最新バージョンにリベースし、他のオフィスに移動して、上司が自分でコミットする前にマージ要求を処理することを忘れないようにする必要があります。さらに悪いことに、私はそれを信じるのに問題がありますが、1週間ほど後にマージ要求の電子メール通知が届かないと私に言いました。

さらに悪いことに、彼は自分でピアレビューのマージリクエストを行い、問題をさらに高めています。 (最良の部分は、私がいつも時間通りにリベースして更新するのを忘れていると彼が思っていることです...)何度か、私は彼が提案するすべてのことをしていると彼に説明しようとしましたが、彼はより多くの経験を持っているので私を信じていません少なくともチームワーク以外の環境ではgitを使用します。

実は数週間からチームワークをしていますが、3ヶ月からこの場所で働いています。 gitでのこのワークフローでは多くの時間を無駄にし、頭痛がするので、svnを使用したかったのです。特に、約40のリポジトリがあり、ほとんどの場合、3000 LOC以下のモジュールがあります。したがって、レポAで親密なものを変更するときは、レポBで何かを変更しなければならない場合があります。決定する場合は、それらすべてを1つのレポ、少なくとも1つのソフトウェアグループに属するモジュールに入れます。

もちろん、新入社員として、上司を批判したり、影響を与えすぎたりすることはできません。では、この問題に対処するための最良の方法は何ですか?

7
Joe

この回答では、あなたとあなたの上司の両方が同じリポジトリで作業していると想定しているため、早送りではなく実際のマージを行う必要があります。

作業を共有リポジトリの先頭に基づいてリベースした場合、履歴を線形に保つためにyoができる限りのことを行いました。

彼が自分の変更の線形履歴が必要な場合は、彼が期待するのと同じ手順に従い、ローカルの変更を共有リポジトリのヘッドにリベースする必要があります。

そのまま、過去には直線的な歴史を求めて生きていると思いますが、古いVCSシステムでのブランチハンドリングに何度も悩まされてきた人々には共通の願いです。他の方法で彼を説得できるまでは、両方の世界で最悪の事態に陥り、分岐が標準であると予想されるDVCSを使用して線形ワークフローを環境に押し込もうとします。

5
Mark Booth

あなたの上司は、分散システムが自然に流れる方法と一致していなくても、自分の仕事のやり方を決めて、それを回避するように言っているようです。 (彼はまた、彼の従業員のマイクロマネジメントと信頼にいくつかの問題を抱えていますが、それはこの質問が実際に何であるかではありません。)

成功したGit分岐モデル
これは、分岐モデルのよく書かれた詳細な説明です。物事を整理し、変更の流れをたどることができます。また、チームの全員からマージするのではなく、誰もがプッシュおよびプルできる「集中型」オリジンを持つという概念にも触れています。

その記事について私が最も気に入っているのは、マージに対するスタンスです。

git merge --no-ff myfeature

早送りを停止すると、ブランチが存在したという事実はそのまま残ります。次に、ロググラフを表示すると

git log --oneline --graph

複数の人が並行して作業している場合でも、分岐点とマージ点が表示され、異なるパスをたどります。

3
unholysampler

ここにはいくつかの問題があります。

  • Git oversvnを使用します。

gitは配布されているので優れています。
gitもこのような問題のために標準になりました。

  • 上司との関係。

明らかに、あなたは厳しい状況にあります。このような状況では、「立ち寄る」または「廊下」のコメントは機能しません。気になる項目については、正式な打ち合わせをお願いすることをお勧めします。会議出席依頼では、その「非常に心配している」という言葉を使用しますが、それが何であるかはまったく言わないでください。これは彼/彼女の注意を引くでしょう!

  • 業界標準。

今日の開発では、ツールの最新情​​報を入手することが非常に重要であり、物事は急速に変化します。 30年前にプログラミングしたときとは異なり、ツールは10年間標準である可能性があります。上司とのミーティングでこの投稿や他の投稿を使用することを検討します。したがって、同じトピックに関する他の質問かもしれません。

最終メモ:
私の最後の上司はsvnを使用し、gitがどのように優れているかについて話そうとしたとき、「svnは完全に優れたシステムであり、1年間使用してきましたが、道端に倒れたわけではありません。 」真実は、誰かが-わかりました、それは私でした-いくつかのコードを台無しにしたときに出てきました。その後、彼はそれを取り消すのに苦労しました。これがバージョン管理システムの非常に重要なポイントであることを考えると、かなり皮肉なことです。したがって、基本的にsvnはうまく機能しました...実際に重要な機能が必要になるまで。彼が3年間ユーザーグループに行ったことがなく、良いSOアカウントなどを持っていないことを考えると、私はおそらくこれを知っていたはずです。
あなたの説明があれば、私もその履歴書を磨き、あなたが市場と連絡を取り合っていることを確認します! wantで作業したい人は、gitを使用していることを嬉しく思います!

0
junky