学習21日目:GitHubの基礎。

今日の学習時間。

  • Day:21
  • Today:3h
  • Total:125h

学習内容について。

GitHubへリポジトリを反映させてみる。

STEP
GitHubにリモートリポジトリを作成。

「New repository」をクリック。

STEP
プッシュ対象のフォルダに移動。
$ cd ~/commit-tutorial

まずは必ず自分の今いるディレクトリがプッシュ対象のフォルダかを確認。

STEP
ローカルリポジトリにリモートリポジトリを登録。
$ git remote add origin https://github.com/kikikeiten/first-git.git
  • ローカルリポジトリにoriginという名前でリモートリポジトリを登録
  • 以降、このローカルリポジトリでは、originを使用してリモートリポジトリとやり取りを行える
  • 自分のローカルリポジトリと同じリモートリポジトリを、originという名前にするのは慣習
    • git cloneコマンドでリモートリポジトリをローカルリポジトリへコピーしてくると、自動的にリモートリポジトリの名前がoriginとつけられるから
  • originを削除してもGitHubのリモートリポジトリが削除される訳ではない
    • GitHubのリモートリポジトリのURLや、リモートリポジトリのコピーを持っているだけ
  • originはリモートリポジトリを扱うときに利用される
    • git push:ローカルリポジトリをリモートリポジトリへコピー
    • git pull:リモートリポジトリの更新分をローカルリポジトリに取り込む
    • git fetch:リモートリポジトリの更新分を取得するのみでローカルリポジトリに取り込むまでは実行しない
$ git remote -v
origin	https://github.com/kikikeiten/first-git.git (fetch)
origin	https://github.com/kikikeiten/first-git.git (push)

get remote -vコマンドでリモートリポジトリの登録状況を確認。

STEP
登録したリモートリポジトリへプッシュ。
$ git push origin master
Username for 'https://github.com': kikikeiten
Password for 'https://kikikeiten@github.com': 
Enumerating objects: 7, done.
Counting objects: 100% (7/7), done.
Delta compression using up to 8 threads
Compressing objects: 100% (6/6), done.
Writing objects: 100% (7/7), 2.61 KiB | 2.61 MiB/s, done.
Total 7 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To https://github.com/kikikeiten/first-git.git
 * [new branch]      master -> master
  • GitHubのユーザ名とパスワードを要求されるので入力

そのほかのコマンド。

originのURLが間違っている場合
$ git remote remove origin
$ git remote add origin リモートリポジトリURL

$ git remote set-url origin リモートリポジトリURL
ローカルリポジトリを作りなおして、既存のリモートリポジトリにプッシュ
$ git push -f origin master

このコマンドは大変危険なコマンドであるので使用には注意する。

Gitで管理しないファイルを指定してみる。

  • Gitで管理したくないファイル
    • 公開するとセキュリティ問題となるファイル
      • 例:パスワードが入力されているファイルなど
    • 二次的に生成されるファイル
      • 例:ビルドファイルや、キャッシュファイルなど
    • 外部ライブラリで管理不要なもの
  • 解決策として.gitignoreというファイルを使用する
STEP
例としてファイルを複製。
$ cd ~/
$ git clone https://github.com/techacademy-jp/git-training-sample.git ignore-tutorial
$ cd ignore-tutorial/
  • git cloneコマンドでGitリポジトリのコピーを実行
    • ホームディレクトリにコピーされる(コミット履歴なども含む)
STEP
移動させ、仮のファイルを作成。
  1. ignore-tutorialフォルダへ移動
  2. その中でsample.htmlを作成
  3. git statusでワークツリーを確認(下記結果)
$ git status

On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        sample.html

nothing added to commit but untracked files present (use "git add" to track)
STEP
.gitignore.gitがある階層と同じ場所に配置。

git statusで確認(下記結果)。

$ git status

On branch master
Your branch is up-to-date with 'origin/master'.
Untracked files:
  (use "git add <file>..." to include in what will be committed)

        .gitignore

nothing added to commit but untracked files present (use "git add" to track)
  1. Gitに無視されたためにsample.htmlはワークツリーから消えた
  2. .gitignoreはGitで管理すべきファイルなので、コミットする
STEP
.gitignoreをコミット。

.gitignoreはGitで管理すべきファイルなので、コミットする。

$ git add .gitignore
$ git commit -m ”add .gitignore”
.gitignoreの記法
  • コメントを書きたい場合は行頭に#
  • フォルダの場合は/
  • *を使うと色々なファイル名にマッチ
# # のあとはコメントになる

# 指定フォルダ以下はすべて無視する(フォルダの最後は / )
sample_folder/

# *を使うと色々なファイル名にマッチする
# 下記は.txtが拡張子のファイルはすべて無視
*.txt
.gitignoreプロジェクト
  • MacやWindowsでも不要なファイルが生成されるかもしれない場合
    • macOS.gitignoreWindows.gitignoreを使用
    • グローバルな.gitignoreとして利用
  • グローバルな.gitignoreはHOMEフォルダに.gitignore_globalとしておけば、適用される
    • ~/.gitignore_global

一般的にgitを学ぶ最適な方法は、最初はごく基本的なことだけを行い、基本を習熟して自信が持てるようになるまでは、その他のできることには目もくれないという方法です。

Linus Torvalds

ありがたきお言葉。。

今日の反省と明日の目標。

個人でやってる分にはあまり実感がないけど、チーム開発する際にはGitHubの重要性を感じるだろうと思います。明日から、Webアプリケーションを作っていきますが、せっかくなのでGitを活用してバージョン管理の練習も兼ねていきたいです。

閉じる