2010-12-12 19 views
0

私は多少の疑問を持っています(私はそう思います...)。このことのいくつかが意味をなさない場合は、私に抱きしめてください。私はgit noobだ。git push to branch

私はクローンしたレポの外に、自分自身のフォルダにある既存のアンドロイドプロジェクトを持っています。私がしたいことは、このアンドロイドプロジェクトの内容を私の同僚のレポにプッシュすることです。プロジェクトをレポの新しい支店の一員にしたい。これをどうやって行うのですか?私はちょうどbashを開いて、私のアンドロイドプロジェクトフォルダに行って、レポをリモートに追加してそれをプッシュすることはできますか?あるいは、私はこのプロジェクトを最初にレポの一部門にする必要があると思いますか?もしそうなら、私は実際にローカルのrepoフォルダの外で作業していると、それをrepoのブランチにする方法はありますか?

まだ混乱していませんか? ;)

おそらく、プロジェクト全体をローカルのrepoフォルダにコピーしてブランチを作成してプッシュするのが最も理にかなっていますか?

これを最も効率的に実行する方法について、いくつかの段階的な説明が大好きです。

多くの義務があります。

+0

これを調べましたか? http://stackoverflow.com/questions/315911/git-for-beginners-the-definitive-practical-guide – WarrenFaith

答えて

1

/path/to/repo 
    +- projectA 
    +- projectB 

だから、一台のマシン上では、次の操作を行います。

cd /path/to 
git clone <url for repo set up on the first machine> 
cd repo 
cp -r /path/to/projectB . 
git add . 
git commit -m "Initial import of project B" 

しないでください。そして、他のマシン上で

mkdir /path/to/repo 
git init 
cp -r /path/to/projectA . 
git add . 
git commit -m "Initial import of project A" 

この時点でgitブランチを気にする。プロジェクトAで作業してコミットを作成できるようになりました。他の開発者はB.に取り組むことができます。競合することはなく、お互いの変更が見えます。

また、私はあなたに両方のプッシュからプルすることをどこかに裸のリポジトリを設定するお勧めします:

mkdir /path/to/centralrepo 
git init --bare 

あなたは両方このリポジトリのクローンを作成することができます。 Gitはピアツーピアですが、将来的には継続的な統合や新しい開発者を追加する場合には、特に "中央"として指定するリポジトリを持つのは良いことです。

gitブランチの意味について少し混乱しているようです。それは時間の枝であり、宇宙の枝ではありません。つまり、gitブランチとは過去のある時点でコードの展開が分岐したことを意味しますが、2つのブランチはある時点で共通の履歴を持っています。スペース内のブランチは、たとえば、新しいプロジェクトを含む新しいフォルダです。分岐Aが分岐Bに完全に異なっている場合

支店は本当にあまり意味がありません。あなたにも全く新しいリポジトリを持っているかもしれません。

申し訳ありませんが、それはそのような長い答えです。それが参考になることを祈っています!

+0

あなたの迅速で徹底的な対応に感謝します。私はいくつかの明確化が必要です。私がmkdirと言うときに、そこに「プロジェクトA」と呼ばれるサブフォルダを作成してそこから進んでいくべきですか?また、 "cp -r/path/to/projectA"とは何ですか?行う? – LuxuryMode

+0

はい、各プロジェクトのリポジトリ内に1つのサブフォルダを作成します。 'cp'コマンドは、既存の' projectA'フォルダをカレントディレクトリにコピーします。プロジェクトがまだ存在しない場合は、それらを 'mkdir projectX'に置き換えることができます。私はあなたがLinux上にいると仮定しています。 Windowsでは、単にプロジェクトフォルダをリポジトリにドラッグアンドドロップするだけです。このすべての終わりに/ path/to/repoに1つのリポジトリがあり、その中に2つのフォルダ(および.gitフォルダ)があります。ありがとうございます。 –

+0

正常にプッシュするには、私は、コミットを追加する必要がありますし、プッシュ、右?私がドラッグアンドドロップしたプロジェクトフォルダ全体をレポに追加するにはどうしたらいいですか?私はちょうど "git add project /"をしますか? はまた、私は入れません「致命的な:ユーザー名/ repo.git doesntのGitのレポように見える」プッシュしようとしたとき... – LuxuryMode

0

「自分のフォルダ内のAndroidプロジェクト」を「A」、「複製したレポ」を「B」とします。 :)

まず、プロジェクトAをgitリポジトリに変換します(存在しない場合)。 (git init

次に、あなただけのBでリモートとして追加(git remote add ...、ヘルプを参照してください)とB(git branch --help)へのローカルブランチにそれを引くことができます。その後、Bの他のリモコンのいずれかにプッシュすることができます。

パス名を指定できる場合は、例を挙げることができます。ので、私は強く最良の選択肢ではなく枝を使用するよりも、あなたのリポジトリのファイル構造を変更することである疑いがある二つのプロジェクトが大きく独立しているようだ

+0

ありがとうございます。あなたはこれについてキャメロンと同意しますか? – LuxuryMode

+1

@ LuxuryModeはい、私はブランチが異種のコードベースで使う正しいモデルではないことに同意します。私は両方のリポジトリを別々のリポジトリに入れて、そこから作業することをお勧めします。 – moeffju