頭脳一式

人の記憶なんて曖昧なもの。すべての情報を頭に記憶するなんてナンセンス。困ったらここに来ればいいじゃん?というスタンスで最強のナレッジベースを目指すブログ

「Git 学習コース Ⅰ」コースで学んだこと

Git 学習コースI修了
Git 学習コースI修了

今更ながら「Git 学習コース Ⅰ」コースを修了しました。
このコースで勉強したことをまとめます。

Gitの準備

Gitを使うためにはgit initを実行する。
initはinitializeの略で「初期化」を意味する。

mysite $ git init
Initialized empty Git repository in /home/progate/first/mysite/.git/

Gitで共有するファイルを選択する

共有したいファイルを選択するにはgit add <ファイル名>を実行する。

mysite $ git add index.html
mysite $

ファイルの修正内容を記録する(コミットする)

選択したファイル(git addしたファイル)を記録するにはgit commit -m "メッセージ"を実行する。
ファイルを記録することをコミットといい、このメッセージをコミットメッセージと呼ぶ。
コミットメッセージは、そのコミットがどのような内容であるかを他の開発者に分かるように書く必要がある。

mysite $ git commit -m "Create index.html"
[master (root-commit) fb22852] Create index.html
1 file changed, 12 insertions(+)
 create mode 100644 index.html
mysite $

コミットしたファイルを複数の開発者で共有する

Gitではリモートと呼ばれる場所に共有ファイルを置く。
リモートにファイルをアップロードしたり、ダウンロードすることにより、開発者同士でファイルを共有することができる。

リモートを登録する

ファイルのアップロード先となるリモートのURLをGitに登録する必要がある。
リモートを登録するにはURLに対する名前を付ける必要がある。一般的にoriginとすることが多い。
登録するにはgit remote add <リモート名> <URL>を実行する。

mysite $ git remote add origin https://prog-8.com/mysite.gitmysite

リモートにアップロードする(プッシュする)

登録したリモートへファイルをアップロードするにはgit push origin masterを実行する。

mysite $ git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 219 bytes | 219.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: From /home/progate/.remote/mysiteremote:  * [new branch]      master     -> origin/master
To /home/progate/.remote/mysite.git
 * [new branch]      master -> master
mysite $

リモートからダウンロードする(プルする)

リモートにプッシュしたファイルはgit pull origin masterでダウンロードすることができる。

mysite $ git pull origin master
remote: Counting objects: 3, done.
remote: Total 3 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From /home/progate/.remote/mysite
 * branch            master     -> FETCH_HEAD * [new branch]      master     -> origin/master
error: The following untracked working tree files would be overwritten by merge:        index.html
Please move or remove them before you merge.
Aborting
mysite $

変更したファイルを確認する。

ファイルが変更されているかを確認するにはgit statusを実行する。
変更されていればmodifiedと表示される。

mysite $ git status
On branch 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:   index.html
        modified:   stylesheet.css

no changes added to commit (use "git add" and/or "git commit -a")
mysite $

変更内容を確認する(masterとの比較)

ファイルの変更内容を確認するにはgit diffを実行する。
masterと比較して変更のある部分が確認できる。

mysite $ git diff
diff --git a/stylesheet.css b/stylesheet.css
index 495f23e..06870ab 100644
--- a/stylesheet.css
+++ b/stylesheet.css
@@ -1,3 +1,6 @@
 .title {
   color: #44dcc0;
+}
+.subtitle {
+  color: #8491a5;
 }
\ No newline at end of file
mysite $

addされているファイルがどれかを確認する。

どのファイルをgit addしたかを忘れてしまったら再度git statusを実行する。

mysite $ git status
On branch master
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)
        modified:   index.html

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:   stylesheet.css
mysite $

addしたファイルはChanges to be committed:のところに緑色の文字色で表示される。
まだaddしていないファイルはChanges not staged for commit:のところに赤色の文字色で表示される。