gitを使用しているときに、個々のファイルやディレクトリをフォークでロックする方法はありますか?
質問
私たちは同じ製品に取り組む 60 人以上の開発者からなるチームで、SVN から Git と GitHub に移行しようとしています。私たちは SVN で、個々のファイルがロックされ、開発者がコードをコミットしたいときはいつでも、そのファイルの所有者からロックを解除してもらう必要がある、というプロセスを持っています。私たち3人が、合計150以上のファイルのオーナーです。ロック解除の前には、コードレビューが行われます。
Github では、Fork-Clone モデルを使用する予定です。開発者のグループが取り組んでいる各プロジェクトはフォークを作成し、各開発者はフォークのクローンを作成し、コードを書き、オリジンにコミットし、その機能のリーダーは上流にプルリクエストを行う予定です。
これは問題ないように見えますが、問題は大きなプロジェクトが納品されたときに、レビューのために多くの変更をもたらし、それゆえファイル所有者の負荷を増大させることです。また、これは開発の後半サイクルで発生する可能性があり、したがって、プロジェクトが危険にさらされる可能性があります。
私たちがうまくいくかもしれないと考えた 1 つの方法は、git push がオリジン (フォーク) に行われるときにフックを持つことです。上流への最終レビュー git pull を 1 回行うことができます。
しかし、同じことを行うための github 拡張またはプッシュ フックを見つけることができませんでした。Github でこれを行う簡単な方法 (既存の拡張を読む) はありますか、それとも git で使用するのと同じフックを使用すべきですか?
どのように解決するのですか?
このユースケースは、Git が SVN よりもずっと優れている理由の一つです --> リベース ! もしあなたが優れた git のワークフローに従っているなら、Pull Requests を提出する前に上流からリベースを行います。ファイルロックや他の人のコミットを踏んでしまうこと、マージの衝突などを心配する必要はありません。リベースでは、自分の作業をいったん脇に置いてリモートのコミットを適用し、その上で自分の作業を適用します。
これは、あなたのプロセスを再考し、git の強みに頼ることと、git の上に Subversion のワークフローを無理やり当てはめることが必要なだけだと思います。フォーククローンモデルも同様に見直す必要があるかもしれません。多くの場合、すべての開発者は自分自身のフォークを持っており、必要であればチーム間でリモートを使ってリポジトリを共有することができます。しかし、貢献者が同じオリジンを共有することは、いくつかの悪い習慣を作り出します。
Gitflow は非常に人気のある git ワークフローであり Github 自身がワークフローを共有し、いくつかのすばらしいヒントを提供しています。 .
関連
-
[解決済み】現在のブランチの先端がリモートブランチより遅れているため、更新が拒否されました。
-
[Gitラーニングノート】Gitのコンフリクト:マージする前に変更をコミットするかstashする。
-
[解決済み] 以前のブランチをgit checkoutする方法はありますか?
-
[解決済み] Gitフォークは、実はGitクローンなのか?
-
[解決済み] GitHubからフォークされたレポを削除する
-
[解決済み] Heroku: 異なるローカルGitブランチをHeroku/masterにプッシュする方法
-
[解決済み] この "u "は具体的に何をするのですか?"git push -u origin master" と "git push origin master" の違い。
-
[解決済み】Gitのワークフローとrebaseとmergeの質問
-
[解決済み】コードレビュー後のプルリクエストを更新するための望ましいGithubワークフロー
-
[解決済み】GitHubで最新コミットのみを対象としたプルリクエストを送信する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
git push は最新の解決策を提供します。
-
gpg: "xxx" をスキップ: 秘密鍵のための1つの解決策が利用できない
-
git を使用してリモートリポジトリを更新する場合、現在のブランチの先端がエラーの背後にあるため、更新が拒否されました。
-
Note: Git prompts このリポジトリで別の git プロセスが実行されているようです ....
-
[解決済み] 単一のgitコミットに対して設定されたユーザーを上書きする
-
[解決済み] gitにもsvnのような無視コマンドはありますか?
-
[解決済み] .gitignoreで特定のファイルを除外する
-
[解決済み] Git のリモート HEAD を master 以外に指定するように変更する
-
[解決済み] 別のユーザーでコードをコミットするにはどうすればよいですか?
-
[解決済み] 非標準のポートでリモートリポジトリを使用する