質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

1回答

2567閲覧

gitでmasterにファイルを集め,サブブランチで個人のモジュールファイルのみ配置する開発が可能かどうか

退会済みユーザー

退会済みユーザー

総合スコア0

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

0クリップ

投稿2016/05/09 03:05

お世話になっております。

実践してみる機会が今までなかったので,かなり基本的な質問かもしれませんが,ご容赦ください。

現在作っているプロダクトのファイルが多くなってきたので,モジュールをディレクトリごとに区切って担当者毎に割り当てるという開発をしたいと思っています。

リポジトリを分けて管理する方法は知っているのですが,モジュールの数も多くなるため,リポジトリごとに区切ると返って管理がしづらいのではないかと思っています。

そこで,masterブランチをファイルを集めるだけのブランチとし,サブのブランチで各々の開発者が自分のプロダクトを作成し,mergeによって,masterにファイルを集めるといった運用はできるのでしょうか?リポジトリが空の状態からブランチを切って各々が開発すればできる気もしますが,すでにプロダクトが存在する状態で実現する方法が思いつかないのでご存じの方がいらっしゃればご教授お願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

可能かどうかで言えば、可能だと思います。
既にプロダクトが存在するケースであっても、ブランチを開発者ごとに用意して、
git commitする前に、それぞれの開発者がリポジトリに追加したいファイルやモジュールのみ、ワーキングツリーに入れて、それぞれのブランチでgit commit すれば良いです。
そうすると、ローカル上には自分の管理しているファイル以外のものも含まれてしまいますが、
リモートリポジトリ上(githubなど)では、開発者が管理しているファイル・モジュールのみが上がっている状態になります。

そして、作業が完了すればmasterへマージという流れにすれば、
masterには、全ファイルが集結し、それぞれ開発者のファイルごとにブランチで分けられているという状況ができます。

また、gitには既にプロダクトが存在していようとも、今までのプロダクトとは完全に隔離された、いわゆる「空ブランチ」を作成するオプションも存在します(git checkout --orphan ブランチ名)。
こうすれば、今までのファイルは引き継がれる(ローカルのみ)ものの、過去の編集歴(ログ)も引き継がれないからブランチをつくれます。
この状態で、ローカルに存在するファイルをすべて削除し、自分の追加したいファイルのみを追加しコミットすれば、
masterとは隔離されたファイルブランチ(?)を作成できます。

しかし、この運用方法は本来のgit運用方法とは異なる気がします。
あくまで自分の認識なのですが、
gitでは、異なる開発者が同一ファイルを触る可能性があることを前提に作られており、
ブランチは異なる開発者がお互いのやりたいことをマージするためにあるものと考えています。

つまり、質問者さまのプロダクトを管理するには、
既に存在するプロダクトそのものをgitリポジトリとし、
全員で全ファイルを共有、編集の必要があれば、
必要のあるファイルを担当者ごとのブランチで操作し、pull requestという流れが良いかと思いました。
その方が、バックアップという観点からも良いかと思います。

しかし、権限であったり何らかの特別な事情があるようでしたら、
先ほどご提案させていただいた方法で、ブランチごとにファイル管理ができるかと思います。

以上です。
少しでもお力になれれば幸いです。

投稿2016/05/09 05:17

ShunFukazawa

総合スコア27

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2016/05/09 05:26

ありがとうございます。大変参考になりました。 このように思い立った理由は一つはプロダクトが巨大化しているかつ,そのほとんどはいじる必要がなく,統合テストはmasterブランチでCIを回しているという経緯があります。 普段ノートPCで開発しているため,自分の環境にファイルを置くのも馬鹿にならないので,節約出来ないかと思った次第です。
ShunFukazawa

2016/05/09 08:11

参考になれて良かったです。 ローカルのストレージ節約という意味ですと、ちょっと話が難しいかもしれませんね。 ブランチを作成し、無駄なファイルを削除・・・くらいしかgitでは助けにならないかもしれませんね。 過去の履歴はスナップショット化してかなり軽量にはなりますが、物理的に残ってしまってるファイルだったりはやはりローカルの負担になってしまいますので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問