0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

git の使い方

Last updated at Posted at 2018-10-02

git とは

バージョン管理システムのことでファイルの変更の履歴を管理してくれる。
複数人で共同開発をするときに git を使うことで開発をスムーズに進められる。

git の使い方

git の初期設定

git のバージョンを確認

$ git --version

git の設定

上 2 つはユーザ情報の設定で必ず行う必要がある。
3 つ目は出力メッセージを色分けできるようにする設定。

$ git config --global user.name "ユーザ名"
$ git config --global user.email "メールアドレス"
$ git config --global color.ui true

git の設定情報の確認とヘルプの見かた

$ git config -l
$ git config --help

ファイルのバージョンの管理

git の初期化

git を使うためにはバージョンを管理したいソースコードがあるディレクトリで以下のコマンドを実行する。

$ git init

コマンドを実行すると、.git というディレクトリが作成される。
.git ディレクトリをリポジトリといい、ここにファイルの変更履歴が記録される。

履歴に追加したいファイルの指定

ステージングエリア(インデックス)に履歴を管理したいファイルを add すると、そのファイルがバージョン管理の対象になる。
フィアル名に.を指定すると、カレントディレクトリ下にあるすべてのファイルが add される。
.gitignore にファイル名を記述しておくと、そのそのファイルは add されない。
.gitignore はカレントディレクトリ下のファイルにのみ適用される。

$ git add ファイル名
$ git add .

リポジトリに変更履歴を追加

ステージングエリアからリポジトリに変更履歴を追加することをコミットするという。
コミットするときにはコミットメッセージも入れる。
-mオプションを使うと、コマンド入力時にメッセージも入れられる。
--amendオプションを使うと、ログを増やさずに直前のコミットを変更できる。

$ git commit
$ git commit -m "commit_message"
$ git commit --amend

コミット履歴の確認

コミットにはオブジェクト名というコミットを一意に表す ID 的なものが付けられる。

$ git log

--oneline:履歴がコンパクトに表示される。

  • -p:ファイルの変更箇所が表示される
  • --stat:どのファイルを何箇所変更したかが表示される。

作業ディレクトリの状態を表示

以下のコマンドで自分がどのファイルに変更を加えたかや、どのファイルを add したかがわかる。

$ git status

変更履歴を確認

add する前には 1 つ目の、 add したが commit していないときには 2 つ目のコマンドを使えばファイルの変更箇所(差分)を見れる。

$ git diff
$ git diff --cached

ファイルの変更を元に戻す

add する前にファイルの変更を取り消したい場合は以下のコマンドを実行する。

$ git checkout -- ファイル名

過去のコミット内容に戻したい場合は以下のコマンドを実行する。
コミット ID に HEAD を指定すると直前のコミット内容に戻れる。
--softはコミットが取り消されるだけであるが、--hardはコミット及びステージングエリアにある内容も取り消される。

$ git reset --hard コミットID
$ git reset --soft コミットID

コミットの reset を取り消すこともできる。

$ git reset --hard ORIG_HEAD

その他

ステージングエリアに上げたファイルを操作する際にはコマンドの先頭に git を必ず付ける。

ブランチ

複数のバージョンを並行して作りたい場合にはブランチを使うと便利。
ブランチとは枝分かれした履歴の道筋のことをいう。

ブランチの一覧を確認

今いるブランチには「*」が先頭についている。
master ブランチがメインのブランチでこれは自動的に生成される。

$ git branch
* master
  branch2

ブランチの作り方

$ git branch ブランチ名

ブランチの切り替え

ブランチを作っただけだと、master ブランチにいる状態。
以下のコマンドで作成したブランチへ自由に移動できる。

$ git checkout ブランチ名

ブランチを作成すると同時にそのブランチに切り替えることも可能。

$ git checkout -b ブランチ名

マージ

ブランチで変更・修正した内容を master ブランチに反映させることをマージするという。
マージ先のブランチで以下のコマンドを実行するとマージできる。

git merge マージしたいブランチ名

マージ後に必要なくなったブランチは以下のコマンドで削除する。

$ git branch -d ブランチ名

コンフリクトの解消

違うブランチで同じ部分に変更を加えてマージしようとした時にコンフリクトが発生する。
その場合、コンフリクトを解消しコミットする必要がある。

タグ

コミット ID は長いのでタグという別名を付けられる。
直前のコミットにタグを付けたい場合はコミットIDは不要。
git tagとのみだとタグの一覧が表示される。

$ git tag タグ名 コミットID

コミットの内容を見たい場合にはタグ名を使って以下のコマンドを実行する。

$ git show タグ名

設定したタグを削除したい場合は以下のコマンドで削除できる。

git tag -d タグ名

エイリアス

コマンドに別名を付けることをエイリアスを設定するという。
長いコマンドにはエイリアスを設定しておくと作業がスムーズになる。
例えば、以下のように設定するとgit checkoutの代わりにgit coが使えるようになる。

$ git config --global alias.co checkout

共同作業するときの git

リモートリポジトリの登録

リモートリポジトリをローカルリモートリポジトリに登録することでファイルを共有できるようになる。
リモートリポジトリにの名前は origin とするのが一般的。
git config -lgit remote -vで 登録したリモートの情報も確認できる。

$ git remote add リモート名 リモートのURL

リモートリポジトリの削除

$ git remote rm origin

プッシュ

リモートリポジトリにローカルリポジトリ内のファイルをアップロードすることをプッシュという。
これによって他の開発メンバーとファイルを共有できるようになる。

$ git push origin master

プル

他の人がプッシュしたファイル内容をローカルリポジトリに反映させる(マージする)ことをプルという。

$ git pull origin master

以下のようにすれば、共有リポジトリの内容のクローンをローカルリモートリポジトリに作成できる。

$ git clone

参考資料

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?