2017-11-28 9 views
1

私は研究者のグループには新しく、バージョン管理のためにgitを使用しています。私たちはすべて同じマシンで作業します。すでにgitリポジトリがあり、他の人はそれぞれ独自のブランチを持っています。私はボブという名前の私の枝を作る必要があります。私のgitリポジトリは本当に裸ですか?

-bash-4.2$ pwd 
/export/home/git/MAS2.5.git 
-bash-4.2$ git branch 
    alice 
* master 
    ton 
-bash-4.2$ git checkout -b bob ton 
fatal: This operation must be run in a work tree 

最もGitが懸念あなた自身のフォークから始まる、またはローカルにいくつかのリモートからのクローニングを案内するが、これは、同じマシン上のすべてであるので、関連する質問を見つけることは困難でした。たとえば、この質問:fatal: This operation must be run in a work treeには、ユーザーのリポジトリが裸であるという解決策があるようです。しかし、このリポジトリは裸ではありません、アリスとトンはここ数か月間働いていますよね?

+1

「ベア」だから裸のレポはあなたのチェックアウトを行うことができますし、その後になるクローニング

Gitのコンテキストでは "空"を意味するわけではありません。 「あなたが直接作業するファイルではなく、Gitファイルだけを含んでいる」という意味です。 – jwodder

+1

リポジトリを別の場所に複製するだけで、作業ディレクトリが作成されます。 'git push origin your_local_branch'を使ってブランチを元の場所にプッシュすることができます。あなたはとにかく裸のレポで働くべきではありません。他のディレクトリ 'cd/some/other/directory'に行き、' git clone/export/home/git/MAS2.5.git'を使ってクローンしてください。 – francium

+0

これら2つのコメントは私の問題を解決します。あなたがもう一度説明すると、私の理解が増します。ブランチを作成するためにこのリポジトリをクローンする必要がある場合は、2つのリポジトリが作成されます。それは、リモートとローカルの設定の違いで私にとっては意味がある。しかしこれはただのマシンなので、リポジトリが1つしかないはずはありませんか?おそらく私は、リモートにアクセスする異なる地元のように複数のユーザーを考える必要がありますか? –

答えて

1

ブランチを作成するためにこのリポジトリをクローンする必要がある場合は、2つのリポジトリが作成されます。それは、リモートとローカルの設定の違いで私にとっては意味がある。しかしこれはただのマシンなので、リポジトリが1つしかないはずはありませんか?

ローカルマシンでGitリポジトリのクローンをいくつでも作成できます。
リモート参照という用語は、ここではレポがプッシュする(またはプルする)upstream repoです。そのレポは、あなたのマシンの次のフォルダに置くことができます。

cd /export/home/git/ 
git clone MAS2.5.git MAS2.5 
cd MAS2.5 
git checkout -b bob ton 
git push -u origin bob 

-uを忘れないようにしてください:次のプッシュは、単純なgit pushになります)

+0

また、 'git clone/export/home/git/MAS2。 5.git'。 @SamGleske Right。 –

+0

私はステップを詳しく説明する答えを編集しました。 – VonC

関連する問題