IT技術と資産運用

ITのmiyamon-log

Git コマンド一覧

仕事で頻繁に使うGitのコマンドを纏めたものです。
分かりやすいように分類ごとに纏めてみました。ご活用ください。

Gitのコマンド一覧

基本(ブランチ操作)

git branch

ローカルで作成されているブランチの一覧を確認

git branch -a

リモートとローカルのブランチの一覧を確認

git checkout ブランチ名

ローカルにある別のブランチに移動

git branch -d ブランチ名

ローカルのブランチを削除

git branch -D branch_name

ブランチを強制削除

(マージしてないから消せないなどのエラーが出た場合に有効)

git fetch

リモートの最新ブランチ情報を取得する。

基本(コミット操作)

git add ファイル名 コミットする対象のファイルを追加
git add . 変更した全てのファイルをコミットする対象に追加
git diff git addしていないファイルの差分を確認
git status addしたファイルと、変更したけどaddしていないファイルを確認
git rm ファイル名 git addしたけど、取り消したい場合

または、リモートのファイルを削除したい場合に利用

git commit git add したファイルの差分を正式なコミットとして登録
git commit -m "コメント" コミットする時に、コメントを追加
git commit --amend 1つ前のコミットのメッセージの内容を修正する

基本(リモートブランチ関連)

git push -u origin ブランチ名 ローカルのコミットした内容をリモートへ反映させる
git push -u -f origin ブランチ名 ローカルのコミットした内容を強制的にリモートへ反映させる。
git pull リモートブランチの更新をローカルブランチに取り込む。
git reset --hard ブランチ名 git pullがエラーになる場合、かつリモートが正しい場合、

リモートの内容でローカルを強制的に合わせる。

git pull --rebase origin マージ先ブランチ名 マージ先のブランチが存在する場合に、マージ先の最新の情報を

取り込む。

git reset --hard ORIG_HEAD 更新前のブランチの情報に戻す
エラーの対応で編集を誤ってしまったときなどに、このコマンドで編集前の状態に戻れる。

基本(その他)

 

git remote -v GitのURLを確認したい
git config --global user.email "miyahuji@example.com"

git config --global user.name "miyahui"

Gitの設定:アカウント情報を登録
git config --global -l Gitの登録情報(name/mail等)を確認

 

Gitコマンド 応用編(シーン毎)

実際のケース毎にコマンドを纏めてみました。

ローカルブランチを削除し、リモートの最新版をチェックアウト

"ローカルブランチの編集に失敗した時"や、やり直したい時に利用。
git reset --hard でも良い。

削除したいブランチにいる場合は、別のブランチに移動

[crayon-66308b7ef0ff5801517450/]

error: you need to resolve your current index first
などのエラーが表示される場合は
git reset --hard ORIG_HEAD
を実行すると解消される。

ローカルGit環境のブランチを削除

git branch -D branch名

リモートの最新の情報を取得し、チェックアウト

git fetch
git checkout branch名

これで、作業前(リモートの状態)に戻し、一から編集作業をやり直すことができます。
強制的に「git reset --hard ブランチ名」を実行しても結果は同じとなります。

PRまでに必要な操作

ローカルでファイルを修正した後は以下の操作を行うことでリモートの更新が可能。
また、ファイルの修正を行う前にgit pullコマンドでローカルを最新の状態にするようにしましょう。

git add -u 対象ファイル
(例) git add -u /home/git/test.py

git commit -m "コメント"
(例)git commit -m "update test"

git push -u origin ブランチ名
(例)git push -u origin develop

これで、ローカルでaddしたファイルがリモートに追加(更新)されます。

リモートから最新のソースコードがチェックアウトできない

最新のリモートのデータをローカルに落としていない可能性があります。
以下のコマンドを実行し、リモートのファイルをローカルに落としておきましょう。

git fetch origin

それでもローカルが書き換わらない場合は、強制的にリモートの情報をローカルに適用しましょう。
git reset --hard origin/ブランチ名

今までのコミットのコメントを整理する。(纏める)

コミットログを確認する

git log --oneline

実行例
$ git log --oneline
d07afa1 テスト実装
14461c2 不具合修正
e187133 リファクタ実施
d39ebb4 最終版

コミットログを纏める(pick を f or fixup とする)

以下コマンドを実行し、過去のコミットを整理する。
末尾の数字は表示するコミットの数を指定する。今回は4件を1件に纏めるため、5を指定。
新しいものから順に pickf またはfixup とする。

git rebase -i HEAD~5

【変更前】
pick d07afa1 テスト実装
pick 14461c2 不具合修正
pick e187133 リファクタ実施
pick d39ebb4 最終版

【変更後】
pick d07afa1 テスト実装
f 14461c2 不具合修正
f e187133 リファクタ実施
f d39ebb4 最終版


編集が完了したら:wqで保存して、抜ける。

コメントは分かりやすいものに修正

git commit --amend


#git commit --amend
テスト実装

機能Aの実装
など、何を追加したか分かりやすい文章に変えよう。

  • B!