独自のGITサーバーをセットアップする方法 裸/裸でないレポは何ですか?


10

シンプルなGITサーバーをセットアップしようとしています。UbuntuをVirtual PC(Virtual Box)にインストールしました。GITをインストールし、リポジトリなどを作成しました

git init 
git add .
git commit "..."

それからWindowsで、私は以下のようなことをしました(cygwinで)

git clone jiewmeng@192.168.0.3:proj1

その後、変更を試みました

git commit -am "..."

しかし、何かを得ました

画像を見る

GITの設定が間違っていると思いますか?私はそれを裸/非裸のリポジトリと関係があるものを読んでいますか?私はいつも裸で使うべきですか?私は試した

git checkout --bare jiewmeng@192.168.0.3:proj1 

しかしproj1.git、その中に(HEADなど)のような奇妙なファイル/フォルダーが入りました。GITを設定する適切な方法は何ですか?

誰かが裸/裸でないレポジトリを説明することもできます、私はGitHubを使って、そんなことはありません!

2011年4月28日更新午後6時UTC + 8

私はhttp://www.youtube.com/watch?v=1gNFrPNF9-Yを試してみましたが、Ubuntu(サーバー)で行いました

git init --bare

次に、Windows(クライアント/ Cygwin)では

git init 
// added readme.txt 
git add .
git commit -m "..."
git remote add origin master jiewmeng@192.168.0.3:proj2
git push origin master

エラーはないようです。しかし、Ubuntuでは、ファイルの場所がわかりません。私はbranches/そこに1番のテレスを見ましたか?

回答:


9

「通常の」リポジトリは、実際のリポジトリと作業コピーを含むディレクトリです。実際のリポジトリは、という名前の非表示のサブディレクトリにあります.git。作業コピーは、作業するファイルとディレクトリです。

「ベア」リポジトリは、.gitディレクトリの内容であり、作業コピーはありません。

ベアリポジトリでは作業できません。まず、ベアリポジトリを通常のリポジトリにクローンし、次にクローンで作業する必要があります。

最初の試みでは、「通常の」リポジトリを作成しました。次に、それを複製しました。次に、通常のリポジトリにプッシュバックしようとしました。その後、警告が表示されました。通常のリポジトリにはプッシュしないでください。Gitはそれを行おうとすると警告を出します。ベアリポジトリにのみプッシュする必要があります。

2回目の試行では、「ベア」リポジトリを作成しました。次に、「通常の」リポジトリを作成しました。次に、通常のリポジトリからベアリポジトリにプッシュしました。これは、予想されるワークフロー(の1つ)です。そのため、エラーや警告は表示されませんでした。

Windowsマシンとubuntuマシンからプロジェクトで作業する場合、2つのオプションがあります。

  1. 裸のリポジトリを作成します(どこでもかまいません)。次に、そのリポジトリから複製します。1つはWindowsマシン上に、もう1つはUbuntuマシン上にあります。次に、クローンからベアリポジトリにプッシュし、ベアリポジトリからクローンにプルします。通常のリポジトリにプッシュしないでください。

  2. 2つの通常のリポジトリを作成します。1つはWindowsマシンに、もう1つはUbuntuマシンに作成します。これで、ubuntuで作業するときに、Windowsマシンからプルでき、その逆も可能です。互いに押し付けないでください。

結論:これまでのところ、裸のリポジトリにのみプッシュします。それ以外の場合はすべて、AからBにプッシュする場合は、代わりにBに移動してからAからプルします。

あなたは非常にgitに慣れていないようです。次の非常にすばらしい本の1つまたは両方を読んでください:Git BookPro Git


1
hmmは、主な学習ポイントは「常にベアリポジトリにのみプッシュすることです。それ以外の場合はすべて、AからBにプッシュする場合は、代わりにBに移動してからAからプルすると思われます。もしそうなら、GitHubはそれをどのように行いますか?私はそれに右にプッシュします(nvはすでにawileに使用しています...)?
Jiew Meng、2011

@JiewMeng:GitHubはベアリポジトリを使用します。ウェブサイトはGitから直接データを読み取り、workdirを必要としません。
user1686

1
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.