BLOG

gitメモ

完全に個人用思い出しメモなのであしからずm(_ _)m

gitの初期設定

git config --global user.name "GitHubのユーザーネーム"
git config --global user.email GitHubで登録したメールアドレス
git config --global core.editor "エディタ名 --wait"

git config user.name

git config user.email

git config core.editor

で確認できる

git config –list

で全てのリストを確認できる。

ローカルリポジトリ

リポジトリとはファイルやディレクトリの状態、変更履歴を記録する場所。

git initコマンドでリポジトリを新規作成する。(initializeの略)

ls -a .git

で.gitの中身のファイル確認

既存プロジェクトから始める

まずは

git init

で.gitディレクトリを作る

この.gitディレクトリがローカルリポジトリで、この中でバージョン管理をしている。

基本的なワークフロー

①ファイルの変更をステージングエリアへ追加

変更したファイルをステージングエリアへ追加するには

git add

を使う

ステージングエリアというのはコミットする前の「控え室」的なところ

②ローカルリポジトリにコミット

ステージングエリアへ追加した変更を

git commit

を使ってローカルリポジトリに保存する。

③リモートリポジトリにプッシュ

自分のリポジトリに変更を記録したら、最後に

git push

を使ってリモートリポジトリにアップする。

実際にやってみる

適当に作ったフォルダ(git init済み)でファイルを作った後、

git add first.txt

続いて

git commit

するとコミットメッセージを入力する画面が開く

半角iでInsertモードになる(入力モード)

入力終わったらescを押す

:wqを押してEnter!!

次はgithubへプッシュ。

githubにてnew repository 作成

…or push an existing repository from the command line

のところをターミナルにコピぺ

からの

git push -u origin master

これでプッシュされる。

※-uのオプションは、これをつけておくと次回以降origin masterをpushするときにgit pushだけでpush出来るようにするためのもの。

初回につけておくと次回以降が楽になるよ。

わかりやすいコミットメッセージとは

ほかのメンバーが「なにをどうして変更したのか」がわかるようにメッセージをつける

1行目:変更内容の要約

2行目:空行

3行目:変更した理由

その他

git status

リポジトリの状態を確認

git commit -v

今回なんの変更をしたのか確認できる。

+ボタンのとこ

git commit -m "メッセージ"

gitのエディタを立ち上げることなくメッセージを追加できる。

git log

コミットされたかどうかを確認できる。

いろいろな変更をコミットする

・新規作成

・ファイルの削除

・複数ファイルの変更

新規作成

vscode の場合のファイル作成

code ファイル名
git add ファイル名
git commit -v

iでインサートモードでコミットメッセージ書いてescと:wqで保存

ファイルを削除する

rm ファイル名

この変更もコミットしてみる

削除したファイルをステージングエリアへ追加するとき

git rm ファイル名

コミットする

git commit -v

— a/second.txtとなっているので、ファイルの削除が記録されていることがわかる。

複数ファイルの変更のコミット

適当にフォルダ内のファイルを変更。

全てのファイルをaddしたい場合

git add .

コミットする

git commit -v

変更が確認できる。

gitリポジトリの現在の状況を確認

ファイルをてきとーに変更

git status

すると

Changes not staged for commit:
(use "git add …" to update what will be committed)
(use "git restore …" to discard changes in working directory)
modified: first-git.txt

と、まだステージに上げられていない変更されたファイルがあるよと

modified: first-git.txtが赤色で表示される

これを

git add first-git.txt

すると

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        modified:   first-git.txt

と、コミットすべき変更ファイルがあるよと

modified: first-git.txtが緑色で表示される

git commit -v

でコミットする。

git status

で、確認すると、

Your branch is ahead of 'origin/master' by 5 commits.
  (use "git push" to publish your local commits)

nothing to commit, working tree clean

何もコミットするものないよ、ワーキングツリーはキレイだよと表示される

変更履歴を確認する

git log

いろいろなオプション

一行で表示する

git log --oneline

何のファイルを変更したのかを見れる

git log -p

ファイルを指定したバージョン

git log -p index.html

表示するログ数を指定できる。

git log -n ○←数字

組み合わせもできる(直近のログ3つを一行ずつ表示)

git log --oneline -n 3

変更差分を確認する

差分とはローカルとステージングエリアとの差分のこと。

add, commitする前に確認する

git diff

git addした後の変更分の確認

git diff --staged

ステージングエリアと最新コミットの差分をみる

git diff HEAD

GitHubにプッシュする。

リモートリポジトリ=GitHub

ローカルリポジトリをリモートリポジトリに登録できる

git remote add origin https://github.com/ユーザー名/リポジトリ名

今後はoriginという名前でGitHubリポジトリにアクセスできる

originがGitHubのこのリポジトリだよというのを伝えている。

こうすることで、originという名前で、pushしたり逆にGitHubの内容を取得できたりする。

リモートリポジトリに登録する時はoriginという名前を使うと覚えておく。

リモートリポジトリへ送信

ローカルリポジトリの内容をリモートリポジトリへ送信する。

git push origin master

master以外のブランチへ送信

git push origin マスター以外のブランチ

管理したくないファイルをGitの管理から外す

.gitignoreファイルに指定することで、ファイルをGitの管理から外すことが出来る。(ignoreは無視という意味)

.gitignoreファイルの書き方

#から始まる行はコメント
指定したファイルを除外
index.html
ルートディレクトリを指定
/root.html
ディレクトリ以下を除外
dir/
/以外の文字列にマッチ「*」
/*/*.css

コミットしてしまったファイルを管理から外す

コミットしたファイルをGitの管理から削除できる。

ファイルも一緒に削除

git rm ファイル名

ディレクトリも一緒に削除

git rm -r ディレクトリ名

ファイルは残したい場合

例えば、パスワードなどのファイルってローカルには残しておきたいけど、gitの管理からは外したいというケース

git rm --cached [ファイル名]

この際、.gitignoreファイルに指定しておかないと、gitから常に無視されるようにはならないので、.gitignoreファイルに追記してgitの管理からずっと外れているようにすることを忘れない。

実際にやってみる

first.txt とsecond.txtがあるとする。

second.txtをgitの管理から外してみる。

git rm second.txt

lsコマンドで見てみると、ローカルから消されている。

gitの管理から外されているか確認

git status

deleted: second.txt

と表示され、消されていることが確認できる。

次はこれを元の状態に戻す。

git reset HEAD second.txt

これだけだと、gitの管理からは外すことが出来たが、ローカル上は消えたままなので、

git checkout second.txt

このコマンドを使うと、ローカルにも戻すことができる。

次はgitの管理からだけ外したい場合。

git rm --cached second.txt

こうすると、ローカルにはファイルが残っているものの、(lsで確認するとfirst.txtとsecond.txtがある)

gitの管理からは削除したということになる。

(git statusで確認すると

Untracked files:
(use “git add …” to include in what will be committed)
second.txt

と表示される)

もとの状態に戻す。

git reset HEAD second.txt
ls

first.txtとsecond.txtになっている。

git status

ファイルの変更も

On branch master
Your branch is up to date with ‘origin/master’.

nothing to commit, working tree clean

と行われていない。