今日の学習時間。
- 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
移動させ、仮のファイルを作成。
ignore-tutorial
フォルダへ移動- その中で
sample.html
を作成 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)
- Gitに無視されたために
sample.html
はワークツリーから消えた .gitignore
はGitで管理すべきファイルなので、コミットする
STEP
.gitignore
をコミット。.gitignore
はGitで管理すべきファイルなので、コミットする。
$ git add .gitignore
$ git commit -m ”add .gitignore”
.gitignoreの記法
- コメントを書きたい場合は行頭に
#
- フォルダの場合は
/
*
を使うと色々なファイル名にマッチ
# # のあとはコメントになる
# 指定フォルダ以下はすべて無視する(フォルダの最後は / )
sample_folder/
# *を使うと色々なファイル名にマッチする
# 下記は.txtが拡張子のファイルはすべて無視
*.txt
.gitignoreプロジェクト
- MacやWindowsでも不要なファイルが生成されるかもしれない場合
macOS.gitignore
やWindows.gitignore
を使用- グローバルな
.gitignore
として利用
- グローバルな.
gitignore
はHOMEフォルダに.gitignore_global
としておけば、適用される~/.gitignore_global
一般的にgitを学ぶ最適な方法は、最初はごく基本的なことだけを行い、基本を習熟して自信が持てるようになるまでは、その他のできることには目もくれないという方法です。
Linus Torvalds
ありがたきお言葉。。
今日の反省と明日の目標。
個人でやってる分にはあまり実感がないけど、チーム開発する際にはGitHubの重要性を感じるだろうと思います。明日から、Webアプリケーションを作っていきますが、せっかくなのでGitを活用してバージョン管理の練習も兼ねていきたいです。