LoginSignup
6
2

More than 1 year has passed since last update.

【Git】ローカル→リモートへpushしたい(既にリモートリポジトリがある場合)

Posted at

基礎的な内容ですが久々にやるとなんだっけ?となってしまったため

どんな時に読む記事?

  • 既にgitのリモートリポジトリが存在する状態からgit pushまでやりたいとき

  • git clone と git initgit 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 initgit 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 pushgit pullができる状態になります。

つまりこの場合は、以下のような状態になります。

local-dir  🤝 remote-repoリポジトリ(リモートリポジトリ)
 └  既に作成していたファイルやディレクトリ(あれば)

まとめ:こんな時はこれを使う!

git clone

  • ローカルにまだディレクトリやpush予定のファイルなどを作っていない
  • リモートリポジトリまるまる持ってきたい

git init ~ git remote add

  • 既にローカルにディレクトリやファイルが作成済み
  • ローカルのディレクトリをリモートに紐付けたいだけ

参考文献

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2