4
0

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.

Ceresクリエイティブ Advent Calendar 2017

Day 11

Gitをつかうための基本的なコマンドライン

Last updated at Posted at 2017-12-10

#最初に
Gitを使うときには、GUI(SourceTreeなど)か、CUI(ターミナルなど)を使った操作になると思います。
GUIを使っている人がCUIを使ってみたいと思ったときに、最低限必要と思われるコマンドラインをまとめました。

ここで記載したコマンドはあくまで一部なのと、オプションの付け方次第で色々な用途に使えることがあるので、やってみたいケースがあったら検索をしてみるといいと思います。

また、人によって、状況によっても、これ使っても大丈夫・だめと色々ありますので、自分のGitへの理解度とかを考慮して、事故らない程度に色々コマンドを使ってみるといいと思います。

:warning: 操作についてはMacのターミナルで検証しているため、Windowsでの動作は保証しかねます。ご注意ください。

#実際の利用方法

状態の確認

最初にワーキングツリー(作業フォルダ)まで移動してからコマンドを実行します。

ステータスを確認する
$ git status

何かコマンドを打つたびに、このgit statusで状態を確認して、正しくコマンド操作が行われたかを確認するといいです。

ブランチの切り替え

:warning: 差分が出ている状態は事前にstashcommitしてください。

ブランチの切り替え
$ git checkout 【ブランチ名】

:white_check_mark: 小技集

ローカルのブランチ一覧を確認したいとき。

ローカルブランチを確認
$ git branch

リモートのブランチ一覧も確認したいとき。

リモートブランチも確認
$ git branch -a

最終編集者の確認

コードの最終編集者を確認したいときに。行単位で確認できます。
コンフリクトしたときなどに、誰のコードとコンフリクトしたかのチェックもできます。

指定したファイルの行単位での最終編集者や最終コミットがわかる
$ git blame 【ファイル名】

ブランチの作成

新しい機能などを作成するときに、新しくブランチを作成するときに行います。

現在いるブランチからtest_branch_aを作成して、test_branch_aへチェックアウトする
$ git checkout -b test_branch_a

上記は下記を行った場合と同じ結果になります

//現在いるブランチからtest_branch_aを作成する
$ git branch test_branch_a
//test_branch_aへブランチを移動する
$ git checkout test_branch_a

ローカルブランチの削除

削除するブランチ以外のところへブランチを移動して行います。

test_branch_dを削除。こちらはpushがされてないコミットがあっても削除する。
$ git branch -D test_branch_d

または

test_branch_dを削除。pushができてないコミットがあると削除されない。
$ git branch -d test_branch_d

リモートブランチからpullする

pullをすると、リモートブランチからローカルブランチに最新のコミットを反映させることができます。

test_branch_dを削除。pushができてないコミットがあると削除されない。
$ git pull origin test_branch_b

または

現在のブランチのリモートブランチからmergeを行います。同時にfetchを行えます。
$ git pull

リモートブランチへpushする

//差分が出ているファイルを、すべてステージする
$ git add .
//ステージした差分をcommitする。vimが起動してコメント入力を求められます。
$ git commit
//コミットをリモートブランチのtest_branch_aへpushする
$ git push origin test_branch_a

上記の1行目のgit add .はあくまで指定方法のひとつなので、一部ファイルのみのコミットなどのときは、下記のように指定方法を変えてください。

:white_check_mark: 小技集

ステージのファイル指定方法

【単体ファイル】test/file.htmlをステージする
$ git add test/filea.html
【複数ファイル】test/filea.htmlと、test/fileb.htmlをステージする
$ git add test/filea.html test/fileb.html

アンステージのファイル指定方法

git add でステージしたファイルを外します。

【単体ファイル】test/filea.htmlをアンステージする
$ git reset HEAD test/filea.html
【複数ファイル】test/filea.htmlとtest/fileb.htmlをアンステージする
$ git reset HEAD test/filea.html test/fileb.html

うっかり間違えてほかのブランチで作業を開始した

状況によって異なりますが、コミット前ならstash。コミット済みならcherry-pickを使います。

コミット前 stash(作業を隠す)

stashを行ったら、正しいブランチでstash applyを行うことで、差分を正しいブランチで反映させます。

差分を保存
$ git stash

または

stashの際にコメントを入れる場合
$ git stash save "間違って作業したもの"
stashした一覧を確認する
$ git stash list
listに入れたものを復元させる。
$ git stash apply@{0}

コミット済み cherry-pick(特定ブランチの反映)

誤って行ったコミットのハッシュをコピーしておいて、正しいブランチでcherry-pickをすると変更をコピーできます。
コピーしたあとは、間違ったコミットは削除します。

正しいブランチで間違ったハッシュをcherry-pickする
$ git cherry-pick XXXXXXXXXXXXXXXXXXXXX 

削除するときは、元の間違ったブランチへcheckoutしてからおこないます。

一つ前のコミットを削除する。最後の^が一つなので、コミットを一つ削除できます。2つ前まで削除の場合は^^となります。
$ git reset --hard HEAD^

:white_check_mark: 小技集

ハッシュを調べる
$ git log
4
0
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
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?