Git基本コマンド

2019/05/28

Gitの基本コマンドをまとめてみました。

 
INDEX

1.最初にやること

  • リポジトリの作成
  • リポジトリの取得
  • gitの設定
  • リモートリポジトリの追加

リポジトリの作成

ローカルリポジトリを作成し、.gitディレクトリを作成します。


$ git init

 

リポジトリの取得

すでにリモートリポジトリが作成されている場合はここからスタート。

Bitbucket からリポジトリをクローンして、ローカルリポジトリを作成します。

チェック
この場合は init を行う必要はありません。

1.Bitbucket の自分のリポジトリを表示

2.画面右上に「clone」というのがあるのでコピペ

3.Git bash を開いてリモートリポジトリをクローンしてくる場所まで移動


$ cd /c/xampp/htdocs/article

 
4.クローンを実行


$ git clone https://laraweb@bitbucket.org/laraweb/article.git

 
これで自分のPCにローカルリポジトリが出来ます。

POINT!

この場合、 /c/xampp/htdocs/article がリポジトリのルートディレクトリになります。

 

git の設定

設定に対する確認や変更などの処理はgit configコマンドを使います。


# 設定内容を確認(local)
$ git config --list
# 設定内容を確認(global)
$ git config --global --list

# 普通は--localで指定していく
# ユーザー名を指定
$ git config --local user.name { 名前 }
# メールアドレスを指定
$ git config --local user.email { email }

# 削除
$ git config --unset user.name

 

ポイント

設定ファイルは以下の3つがあります。上から順に優先順位が高い。

ファイルパス 対象 使用するオプション
.git/config リポジトリごと --localまたは指定なし
~/.gitconfig ユーザーごと --global
/etc/gitconfig システム全体 --system

 

リモートリポジトリの追加


# 形式
$ remote add <名前> url

# 実例
$ git remote add origin git@bitbucket.org:test/mytodolist.git

 

HerokuにあるGitリポジトリを追加

$ heroku git:remote --app [APPNAME]

 

2.ローカルリポジトリでの作業

ローカルリポジトリとはユーザー1人1人が利用するために、自分の手元のPC上に配置するリポジトリのことです。

「リモートの変更点を取り込む」「変更点をaddする」「変更点をcommitする」「変更点をpushする」「基本の流れ」

リモートの変更点を取り込む

【 使いどころ 】リモートリポジトリの内容を取り込むとき

リモートリポジトリの変更点を、ローカルリポジトリにマージします。


$ git pull

 
例)master ブランチを最新にするケース


$ git checkout master
$ git pull origin master

 

変更点を add する

インデックスにファイルを登録する作業です。


$ git add [ファイルパス]

 
-A のオプションをつけることで、変更があったすべてのファイルを add します。


$ git add -A

 

変更点を commit する


$ git commit -m "commitメッセージ"

 

変更点を push する


$ git push origin [ ローカルブランチ名 ]

 

HerokuにあるGitリポジトリにプッシュ

$ git push heroku master

 

基本の流れ

例)a.txt をリモートリポジトリにプッシュする


$ git add a.txt
$ git commit -m "新しく a.txt を追加"
$ git push origin mybranch

 

3.ブランチの操作(ローカル側)

「ブランチの一覧を見る」「ブランチの切り替え」「ブランチの作成」「ブランチの削除」「ブランチの作成+作ったブランチに移動」「ブランチをディレクトリみたいに扱う」

ブランチの一覧を見る

作成したローカルのブランチを一覧で確認します。


git branch

POINT!

オプションに a を入れるとリモートブランチも出てきます。よく使うのはこっち。


$ git branch -a

 

ブランチの切り替え


$ git checkout master

 

ブランチの作成

現在のブランチから派生ブランチを作成。


$ git branch mybranch

 

ブランチの削除


$ git branch --delete mybranch

 

ブランチの作成+作ったブランチに移動


$ git checkout -b mybranch

 

ブランチをディレクトリみたいに扱う

ブランチにスラッシュを使うと実現できます。


$ git checkout -b feature/mybranch

POINT!

実際はディレクトリを作成しているのではありません。あくまでも ファイル名 です。なので、以下の手順だとエラーになります。


$ git checkout -b feature
$ git checkout -b feature/mybranch

 

4.ブランチの操作(リモート側)

「ブランチの一覧を見る」「ブランチをリモートに登録」「ブランチの削除」

ブランチの一覧を見る

リモートブランチの一覧を表示します。


$ git branch --remote

POINT!

(作成した)ローカルブランチ+リモートブランチの表示。よく使うのはこっち。


$ git branch -a

 

ブランチをリモートに登録

プッシュ時に新しく作ったブランチをリモートにも登録します。通常、ローカルブランチ名と同じ名前にします。


$ git push origin mybranch

 

ブランチの削除


$ git push --delete origin mybranch

POINT!
リモートリポジトリ上で直接ブランチを消すと、git branch -a コマンドを実行しても表示されます。そんなときは以下のコマンドで反映されるようになります。


$ git remote prune origin

prune という言葉には「余計な枝を切り払う」という意味があるそうです。

 

5.Git のローカルブランチを作成しリモートに push の流れ

ローカルブランチの作成

$ git branch develop

 

作業場所を変更

$ git checkout develop

 

今いるブランチを確認

$ git branch

*develop
master

 

作業

develop ブランチ上で作業します。test.html を作成したとします。

 

変更が加えらえたファイルを表示

develop ブランチで新しく作業を行ったため、その対象である test.html が表示されます。


$ git status

 

ステージングに移動

$ git add test.html

 

コミット

$ git commit -m "second commit"

 

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

プッシュ先を develop ブランチに指定します。


$ git push origin develop

ポイント

2回目以降はgit pushのみでOK

 

6.他ブランチをmasterにマージする流れ

開発用ブランチ(develop)へ移動

$ git checkout develop

ポイント

master ブランチからdevelopブランチを切ってください。

 

sample.html 作成

$ touch sample.html

 

ステージング・エリアに移動

$ git add sample.html

 

もし、作業途中のもので commit 出来るものがあれば commit しておく

$ git commit -m "create sample.html"

ポイント

コミットしたファイルがマージ対象ファイルになります。ブランチの変更の取り込み漏れの原因になるので、全てコミットが済んでいる状態で git merge するようにします。

 

masterブランチへ移動

$ git checkout master

 

git pullでmasterを最新に

$ git pull origin master

ポイント

developブランチで作業をしている間に origin/master ブランチが更新されている可能性があるので、一旦ここで最新にします。

 

mergeコマンドでdevelopの内容を取り込む

$ git merge develop

ポイント

「マージすべて完了!でもやっぱりやめよう。。」のケース


# マージする前のHEADに戻ります
$ git reset --hard ORIG_HEAD

 

ファイルの変更履歴を確認

$ git log --oneline -3

ポイント

オプションで出力行数指定(3桁)にしています。

 

7.他ブランチからmasterブランチを最新にする流れ


# masterブランチに切り替え
$ git checkout master

# リモートから最新に
$ git pull

# 開発ブランチに切り替え
$ git checkout develop

# マスターブランチから取り込む
$ git merge master

 
また、いろいろ発見したら随時追加していきます。

とりあえず、以上です。

本庄マサノリ

仕事でLaravelを使っています。気づいたことや新しい発見など情報を発信していきます。メールはこちら

 

-環境構築