git clone --bare
あなたのレポは他の人がアクセスできる場所です。
最も基本的なリモートGitリポジトリは、裸のクローンだけです。裸のクローンは、チェックアウトがないことを意味し、それは.git
ディレクトリの内容に過ぎません。チェックアウトをすると、そのチェックアウトを自分のgit作業ディレクトリとして使用して変更を加えようとする可能性があり、リポジトリに変更を加える他の人と混乱することになります。
例えば、foo/
に新しいリポジトリを作成してファイルをコミットします。
$ git init foo
Reinitialized existing Git repository in /Users/schwern/tmp/foo/.git/
$ rm -rf foo
$ git init foo
Initialized empty Git repository in /Users/schwern/tmp/foo/.git/
$ cd foo
$ touch this
$ git add this
$ git ci -m 'First commit'
[master (root-commit) 1a0bddf] First commit
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 this
それから私は(クローニングがネットワーク上で発生する必要はありません)bar/
にそれの裸のクローンを作成します。
$ git clone --bare foo bar
$ ls
HEAD config description hooks info objects packed-refs refs
チェックアウトの代わりに、.git
ディレクトリの内容を持っています。
ここからクローンを作成できます。ローカルファイルシステム上のクローニングだ
$ git clone bar baz
Cloning into 'baz'...
done.
$ cd baz/
$ git log
commit 1a0bddf415f48d71fa3aacc79c07c233d91ed4a9 (HEAD -> master, origin/master, origin/HEAD)
Author: Michael G. Schwern <[email protected]>
Date: Tue Feb 14 12:01:13 2017 -0800
First commit
。もちろん、Gitはネットワーク上でクローンを作成します。通常、ssh
またはhttps
を使用します。 git clone [email protected]/path
はにssh
と入力してuser
と入力し、path
にコピーしてください。
他の人には、devサーバーやSVNサーバーを持っているホストと同じようにssh
アクセス権がある場所にリポジトリを置くことができます。
これはGitリポジトリを共有するための最も素朴な方法です。そこには、Webアクセスとより多くのプロトコルを提供する洗練されたGitサーバがたくさんあります。非常にまばらなものすべてGitWebからGitlabまで、Githubクローンをローカルで無料でホストすることができます。
Pro Git's chapter on Git Serversで詳しく読むことができます。
_ "私はそれを1つのファイル、つまりmyRepo.git" _なぜですか? –
私はそれが単一のファイルであることに結婚していません。私は混乱していた。 myRepo.gitは、拡張のために単一のファイルのように見えました。私はそれを「cd」して、それがディレクトリであることを知った。私はまだgitとLinuxの両方について学んでいます - 私は推測する方法がまだあります。 – Scottlysan