Git BashでGitHubからローカルPCにcloneし、ファイルを修正してGitHubにpushとpullします。
(確認環境:Windows10,git 2.19.1,Google Chrome)
目次
概要 | クローン(clone)とpushとpullとは / GitHubにpushする手順 |
手順 | 1. GitHubからPCに反映する(clone) |
2. ファイルを修正してローカルレポジトリにcommitする | |
3.PCからGitHubに反映する(push) | |
4.GitHubからPCに反映する(pull) | |
GitHubのフォルダを削除する |
クローン(clone)とpushとpullとは
クローン(clone)
リポジトリ(Repository)とは、保管する場所のことです。
リモートリポジトリからローカルに新規のリポジトリを作成するときはクローン(clone)を行います。
GitHubのGitとローカルPCのGitでやり取りする場合、GitHubがリモートリポジトリでローカルPCがローカルリポジトリです。
pushとpull
push(プッシュ)は、ローカルリポジトリの変更をリモートリポジトリに反映します。
pull(プル)は、リモートリポジトリの変更をローカルリポジトリに反映します。
GitHubにpushする手順
git add . git commit -m "comment" git push |
1. GitHubからPCに反映する(clone)
※レポジトリを増やす場合は、最初にGitHubのページでレポジトリを作成しローカルにcloneします。
1.以下の環境が前提になっています。
・GitHubのアカウントを取得してレポジトリを作成し、テスト用のファイルを作成する。
・gitをインストールする。
・gitからGitHubへのssh接続の設定する。
GitHubにアカウントを登録/削除する手順
gitをWindows10にインストールする手順
Git BashでGitHubにssh接続する手順 (Windows)
2.ローカル環境(PC)の任意の場所に空フォルダを作成します。
※EドライブにTest1フォルダを作成しました。
3.作成したフォルダで右クリックし「Git Bash Here」をクリックしてGit Bashを開きます。
4.gitで使用するユーザ名とメールアドレスを登録します。
git config --global user.name testuser123abc
git config --global user.email test@example.com
5.登録した内容を確認します。
git config --global --list
user.name=testuser123abc
user.email=test@example.com
2,3行目は、登録したユーザ名とメールアドレスが表示されています。
6.GitHubの作成したレポジトリの画面でSSH接続用のURLを取得します。
「Use SSH」をクリックし、そこに表示されるURLをコピーします。
7.git cloneコマンドを実行します。
git clone + 上記でコピーした文字列
git clone git@github.com:testuser123abc/test789.git
Cloning into 'test789'...
Enter passphrase for key '/c/Users/moon/.ssh/id_rsa':
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
1行目は、git cloneの後に上記手順で取得したURLを貼り付けます。
3行目は、設定したパスフレーズを入力します。
8.実行したフォルダの配下に取得したレポジトリ名でフォルダが作成されます。
lsコマンドでフォルダ名を確認できます。移動はcdコマンドを使用します。
cd test789/
2. ファイルを修正してローカルレポジトリにcommitする
1.テストのため、ファイルを修正します。
例:test1.txtの内容を、こんにちは123 → こんにちは123ハローに修正する。
2.上記手順で変更したファイルを確認します。
レポジトリ名のフォルダ配下に移動して、git statusコマンドを入力します。
(サンプルでは、EドライブのTest1フォルダのtest789のフォルダに移動しました。)
git status
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: test1.txt
no changes added to commit (use "git add" and/or "git commit -a")
6行目は、commitするには、git add・・・が必要と書いてあります。
9行目は、変更(modified)したファイル名が表示されています。
3.git add . を入力します。作成したファイルをステージングエリア(インデックス)に登録します。
コミット待ちの状態になります。
git add .
最後のピリオド(.)は、すべてのファイルを指します。
4.git commitコマンドでコミットを行いレポジトリに登録します。
-mの後の引数は、コメントです。任意の文字を入力できます。
git commit -m "local-de-hennkou"
[master e89008a] local-de-hennkou
1 file changed, 1 insertion(+), 1 deletion(-)
5.git logコマンドでcommit状況を確認できます。
6行目は、上記コマンド入力時のコメントでcommitされていることがわかります。
git log
commit e89008ae871860a3cc21ca4b1533431b96ec4172 (HEAD -> master)
Author: testuser123abc <test@example.com>
Date: Thu Nov 22 22:53:00 2018 +0900
local-de-hennkou
commit 917a35e93bbab9f2cd65548e83bd78699f727078 (origin/master, origin/HEAD)
Author: testuser1 <45202201+testuser123abc@users.noreply.github.com>
Date: Thu Nov 22 22:43:23 2018 +0900
Create test1.txt
.gitignoreファイル
git addコマンドでステージングエリアに追加したくないファイルがある場合は、.gitignoreファイルを作成して対象のファイルを指定します。.gitignoreファイル自体はコミット対象になります。
1.vimコマンドで.gitignoreファイルを作成します。
vim .gitignore
2..gitignoreファイルの内容はサンプルとして以下のように指定しました。
1行目は、コメントです。
2行目は、拡張子がログのファイルを追加しないようにします。
3行目は、指定のフォルダ配下のファイルを追加しないようにします。
#コメント
*.log
folder1/
3.PCからGitHubに反映する(push)
1.リモートリポジトリのURLを確認します。
$ git remote -v
origin https://github.com/testuser123abc/test789.git (fetch)
origin https://github.com/testuser123abc/test789.git (push)
1行目のgit remote -vを入力します。
上記はhttps接続になっているので次の手順でssh接続に変更します。
2.ssh接続の設定と確認
git remote set-url origin git@github.com:testuser123abc/test789.git
git remote -v
origin git@github.com:testuser123abc/test789.git (fetch)
origin git@github.com:testuser123abc/test789.git (push)
1行目のコマンドでssh接続を設定しています。git@からのURLは、GitHubで取得したURLです。
testuser123abcの箇所は、GitHubのレポジトリ所有者と合わせる必要があります。
test789.gitの箇所は、GitHubのレポジトリ名と合わせる必要があります。
3行目は、git remote -vコマンドで再度URLを確認しています。
4,5行目は、ssh接続になっています。
3.GitHubにpush
git push
Enter passphrase for key '/c/Users/moon/.ssh/id_rsa':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Writing objects: 100% (3/3), 276 bytes | 276.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:testuser123abc/test789.git
917a35e..e89008a master -> master
1行目は、git pushコマンドでpushしています。
2行目は、設定したパスフレーズを入力します。
完了後、GitHubのファイルを確認するとローカルの修正が反映されています。
参考:https://gist.github.com/developius/c81f021eb5c5916013dc
4.GitHubからPCに反映する(pull)
git pullコマンドを使用します。
git pull
Enter passphrase for key '/c/Users/moon/.ssh/id_rsa':
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), done.
From github.com:testuser123abc/test789
664a28b..6a97206 master -> origin/master
Updating 664a28b..6a97206
Fast-forward
test1.txt | 2 ++
1 file changed, 2 insertions(+)
リモートリポジトリの変更がローカルリポジトリに反映されます。
GitHubのフォルダを削除する手順
ローカルのフォルダを削除(移動)する git add . git commit -m "delete folder" git push |
関連の記事
GitHubにアカウントを登録/削除する手順
gitをWindows10にインストールする手順
Git BashでGitHubにssh接続する手順 (Windows)
Git リポジトリにコミットする流れ(Git Bash)
Git ブランチを作成しマージする(Git Bash)