基礎的な内容ですが久々にやるとなんだっけ?となってしまったため
どんな時に読む記事?
-
既にgitのリモートリポジトリが存在する状態から
git push
までやりたいとき -
git clone
とgit init
〜git remote add
の違いについて知りたいとき
git clone
git clone
は既存のリモートリポジトリを文字通りクローン(コピー)してくるコマンドです。
ex)以下二つが存在するとき
-
local-dir
というローカル環境のディレクトリ -
remote-repo
というリモートリポジトリ
local-dir上で実行した場合
~/local-dir $ git clone <remote-repoのURL>
~/local-dir $ ls
remote-repo
こんな感じでlocal-dir
配下にremote-repo
がまるっと入ってきます。
この状態のremote-repo
は既にリモートリポジトリとの接続設定が済んでおり、git add
等をしたときにデータが保存されるなどgitの操作の要となる.git
ディレクトリも含まれています。
つまりこの場合は、以下のような状態になります。
local-dir
├ 既存のファイルやディレクトリ(あれば)
└ 🆕remote-repo 🤝 remote-repoリポジトリ(リモートリポジトリ)
└ 諸々リモートにあったファイルやディレクトリ
git init
〜 git remote add
まずgit init
は既存のディレクトリをgitの管理下におくためのコマンドです。
=ローカルリポジトリ作成のためのコマンド
実行すると前述した.git
ディレクトリをカレントディレクトリ内に置いてくれます。
~/local-dir $ git init
Initialized empty Git repository in /User/hoge/local-dir/.git/
~/local-dir[master] $ ls -a
. .git //.gitは隠しファイル
..
次にgit remote add
は既存のリモートリポジトリとローカルリポジトリを紐づけてくれるコマンドです。
~/local-dir[master] $ git remote add <remote-repoのURL>
~/local-dir[master] $ git remote -v // 正しく設定されていればこんな感じで表示される↓
origin git@(中略).git (fetch)
origin git@(中略).git (push)
こうすることで、先ほどinitして管理下に置かれたlocal-dir
ディレクトリからリモートリポジトリにgit push
やgit pull
ができる状態になります。
つまりこの場合は、以下のような状態になります。
local-dir 🤝 remote-repoリポジトリ(リモートリポジトリ)
└ 既に作成していたファイルやディレクトリ(あれば)
まとめ:こんな時はこれを使う!
git clone
- ローカルにまだディレクトリやpush予定のファイルなどを作っていない
- リモートリポジトリまるまる持ってきたい
git init
~ git remote add
- 既にローカルにディレクトリやファイルが作成済み
- ローカルのディレクトリをリモートに紐付けたいだけ
参考文献