gitとGitHubってなんやねん?っとなっている人は、 以下のUdemyコースで無料で学べます。
GitHubの無料チュートリアル - Git:はじめてのGitとGitHub | Udemy
1回やったきりだったので改めて復習。
Git と GitHub
バージョン管理するもの。 「どのファイルの何を」「誰が」「いつ」「何のために」、これらを変更した履歴を残せる。
Gitの仕組み
変更履歴を時系列順に記録する。 また記録を過去にさかのぼることが可能。 記録する際はコメントをつける。
リポジトリ
変更履歴を記録する場所。 Git init コマンドで新規ローカルリポジトリを作成する。
コミット
個人リポジトリに変更履歴を記録。
プッシュ
共有リポジトリに記録する。
個人のPCで作業をする → コミットする → プッシュするという流れが基本。
プル
共有リポジトリの情報をローカルに同期する。
GitHub
Gitリポジトリのホスティングサービス。 要はオンライン上でファイルを預かってくれる。
GitHubの特徴
プルリクエストによるコラボレーション。 要は複数人でファイルの管理がしやすくなる。
基本的ワークフロー
- 作業するフォルダにてローカルリポジトリを作成 → git init コマンド
- ファイルの変更をステージングエリアへ追加 → git add コマンド
- ローカルリポジトリにコミット → git commit コマンド
- リモートリポジトリ(GitHub)にプッシュ → git push コマンド
ローカルリポジトリの作成
作業するフォルダを作成。作成後、そのフォルダに移動。
git init コマンドにて、ローカルリポジトリを作成する。
$ git init Initialized empty Git repository in /Users/muranakajun/Desktop/test/.git/
GitHub上で作成したリポジトリを同期
名前を入力、Descriptionは説明文が必要なら入れる。
特に見られても困らなければPublicを選択してクリエイト。
そうすっとこんな画面が出て、今回は既にリポジトリ作成済みなので、
…or push an existing repository from the command line のコマンドを実行。
コマンドを実行するとGitHub上で確認できるようになる。
作成したファイル test をクリックすると中身が見える。
変更をコミットするフロー
- ファイル変更する
- ステージングエリアへ追加
- リポジトリにメッセージを付けてコミット
・git status コマンド
ステータスを見るコマンド。 何も変更がない場合は以下のように表示。
$ git status On branch master Your branch is up to date with 'origin/master'. nothing to commit, working tree clean
ファイルに変更を加えた後で同じコマンドを打つとこうなる。
$ 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: test no changes added to commit (use "git add" and/or "git commit -a")
変更加えてると、add使えと出てくれる。 んで、git add コマンドでステージングエリアに追加。
$ git add .
. をつけるとファイル全部ステージングエリアに動かすぞってこと。
ファイル名指定でもおk。
これでステージングエリアに追加されたことになる。
もっかいステータスを確認する。
$ git status On branch master Your branch is up to date with 'origin/master'. Changes to be committed: (use "git reset HEAD <file>..." to unstage) modified: test
んで、コミットする。
$ Git commit -v
オプション v つけると、変更箇所が確認できる。
# Please enter the commit message for your changes. Lines starting # with '#' will be ignored, and an empty message aborts the commit. # # On branch master # Your branch is up to date with 'origin/master'. # # Changes to be committed: # modified: test # # ------------------------ >8 ------------------------ # Do not modify or remove the line above. # Everything below it will be ignored. diff --git a/test b/test index 484096a..db2c4f3 100644 --- a/test +++ b/test @@ -1 +1,3 @@ Gitの練習 +・git add +・git commit
一番上にメッセージつけて保存。
$ git commit -v [master 1b72555] add, commitのコマンドを追記 1 file changed, 2 insertions(+)
完了。
git log コマンドで変更履歴が見れる
$ git log commit 1b7255522e782000a01f7a141a269bc8b870d129 (HEAD -> master) Author: github muranaka-jun <tonjiru1013@gmail.com> Date: Fri Nov 9 13:08:25 2018 +0900 add, commitのコマンドを追記 講座の復習 commit 7c00af6d5b1047a1c936ac32b88cd6ec2461cf9d (origin/master) Author: github muranaka-jun <tonjiru1013@gmail.com> Date: Fri Nov 9 11:07:13 2018 +0900 initial commit
不要なファイルを削除する
ローカルリポジトリにあるファイルを削除する。
$ rm second.txt
git rm コマンドでステージングエリアにファイル消したことを教える。
$ git rm second.txt rm 'second.txt'
続いてコミットする。
$ git commit -v [master 7af9e4f] second.txt 削除 1 file changed, 1 deletion(-) delete mode 100644 second.txt
削除処理完了。
複数ファイルの変更をする
複数ファイルを変更、git add . コマンドを打つ。
$ git add .
んでコミットすればおk。
git diff コマンドでローカルとステージングとの差分を確認する
ファイル内容を追記してgit diff コマンドを打つ。
index 94a1902..86b8721 100644 --- a/test +++ b/test @@ -3,3 +3,4 @@ Gitの練習 ・git commit ・git rm ・git status +・git diff
ローカルとステージングの差分を表示。
git diff HEAD コマンドでステージングとコミットの差分を確認する
続いてaddしてから、
ステージングとコミットの差分を見る。
$ git diff HEAD diff --git a/test b/test index 94a1902..86b8721 100644 --- a/test +++ b/test @@ -3,3 +3,4 @@ Gitの練習 ・git commit ・git rm ・git status +・git diff
ステージングとコミットとの差分を表示。
GitHubにプッシュする
git push コマンドを使って、 今までの変更分をGitHub上にのせる。
$ git push origin master Enumerating objects: 18, done. Counting objects: 100% (18/18), done. Delta compression using up to 4 threads Compressing objects: 100% (12/12), done. Writing objects: 100% (16/16), 1.62 KiB | 831.00 KiB/s, done. Total 16 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), done. To https://github.com/muranaka-jun/test.git 7c00af6..37a4b0b master -> master
GitHub画面上で確認できるようになった。
ひととおり必要そうな部分を復習。