0
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.

gitコマンド集

0
Last updated at Posted at 2020-07-20

add

指定したファイルをインデックスに登録しコミット対象にする。

基本
git add <ファイル名>

git add -u or git add --update:バージョン管理下のファイルのみaddされる。
git add -A or git add --all:すべての変更ファイルがaddされる。
git add .:カレントディレクトリ以下の変更ファイルがaddされる。

New File Modified File Deleted File
git add -u ×
git add -A
git add .

commit

リポジトリへ変更を記録する。

基本
git commit -m <コミットメッセージ>

直前にコミットしたメッセージの変更

git commit --amend -m <新しいコミットメッセージ>

※2つ以上前のコミットメッセージを変更する場合は、rebaseを参照。

push

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

基本
git push origin <ブランチ名>

originはリモートリポジトリの場所の別名(デフォルト)を表す。

git push origin HEAD:カレントブランチをpushする。
git push -f origin <ブランチ名>:リモートブランチをローカルブランチの内容で上書きする。
git push -d origin <ブランチ名>:リモートブランチを削除する。

fetch

リモートリポジトリから最新情報をローカルリポジトリにダウンロードする。

git fetch origin <ブランチ名>

merge

指定したブランチの内容を統合する。

git merge <ブランチ名>

pull

リモートのブランチの内容をローカルのブランチに反映する。(git fetch+git merge FETCH_HEAD

基本
git pull origin <ブランチ名>

branch

ブランチの一覧表示、作成、削除を行う。

ローカルブランチの一覧表示

git branch
git branch -l

リモート追跡ブランチの一覧表示

git branch -r

リモート追跡ブランチとローカルブランチの両方を一覧表示

git branch -a

ローカルブランチを作成

git branch <ブランチ名>

ローカルブランチを削除

マージ済みの場合
git branch -d <ブランチ名>
汎用
git branch -D <ブランチ名>

-D--delete --forceのショートカット

checkout

ワークツリーの内容を指定したブランチに切り替える。

ブランチの切り替え

基本
git checkout <ブランチ名>

git checkout -b <ブランチ名>:ブランチを作成し、切り替える。(git branch + git checkout

clone

リポジトリのクローンを作成する。

カレントディレクトリにリポジトリを複製
git clone <リポジトリのURL>
指定したディレクトリにリポジトリを複製
git clone <リポジトリのURL> <ディレクトリ> 

init

リポジトリを新規作成する、または既存リポジトリを初期化する

カレントディレクトリの場合
git init
ディレクトリを指定する場合
git init <ディレクトリ名>

rm

ファイルを削除する、またはGitの管理対象から外す

指定したファイルをGitの管理対象から外し、ワークツリーからも削除する
git rm <ファイル名>

git rm -f <ファイル名>:指定したファイルが最後のコミット後に変更されていても削除する。
git rm -r <ディレクトリ名>:指定したディレクトリをGitの管理対象から外し、ワークツリーからも削除する。
git rm --cached <ファイル名>:ファイルをワークツリーに残したまま、Gitの管理対象から外す。

config

Gitの設定を確認・変更する。

設定一覧を表示

git config -l
git config --list

※local,system,globalの設定を個別に確認するには、オプション--local or --system or --globalをつける。

設定の確認

git config <設定項目名>

設定の変更

コマンドラインから編集する場合
git config <設定項目名> <設定値>
エディタで直接編集する場合
git config -e

Gitの設定Tips

ユーザー名とメールアドレスを設定する。

※GitHubのユーザー名とメールアドレスと揃えるとよい。

git config --global user.name "<ユーザー名>"
git config --global user.email "<メールアドレス>"

シンボリックリンクを有効にする。

git config --global core.symlinks true

日本語のファイル名が文字化けしないようにする。

git config --global core.quotepath false

ファイルの大文字・小文字を区別して認識する。

git config --blobal core.ignorecase false

改行コードが混在している場合は変換しないようにする。

git config --global core.safecrlf true

commit または checkout時に改行コードを変換しない。

git config --global core.autocrlf false

コミットメッセージを編集する際に使用するエディタを指定する。

git config --global core.editor "'C:/Program Files (x86)/Hidemaru/Hidemaru.exe' //fu8 "

カレントブランチと同名のリモートブランチが存在する場合のみ、カレントブランチのpushが行われる。

git config --global push.default simple

GitHubと通信する際に使用するユーザー名とパスワードをキャッシュする。

git config --global credentia.helper wincred

remote

リモートリポジトリとの関連付けを管理する。

リモートリポジトリの名前を表示する

git remote

リモートリポジトリの名前と場所(URL)を表示する

git remote -v

指定したリモートリポジトリの詳細情報を表示する

git remote show <リモートリポジトリの名前>

リモートリポジトリを追加する

git remote add origin <リモートリポジトリの場所(URL)>

リモートリポジトリの場所(URL)を編集する

git remote set-url <リモートリポジトリの名前> <リモートリポジトリの場所(URL)>

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

git remote rm <リモートリポジトリの名前>

stash

変更をコミットせずに一時的に退避する。

変更差分を退避する。(未追跡ファイルを除く)

git stash

未追跡ファイルも含めて変更差分を退避する。

git stash -u

変更差分にメッセージを付けて退避する。

git stash save <メッセージ>

退避させた変更を一覧表示する。

git stash list

退避させた変更を戻す。

退避を削除しない
git stash apply stash@{<番号>}
退避を削除
git stash pop stash@{<番号>}

<番号>git stash listで確認できる。

退避リストから削除する。

指定した退避を削除
git stash drop stash@{<番号>}
全削除
git stash clear

退避した内容を確認する。

変更されたファイル一覧を表示
git stash show stash@{<番号>}
ファイルごとの変更内容を表示
git stash show -p stash@{<番号>}

status

ファイルの状態を表示する。

git status
項目 意味
Changes to be committed インデックスに反映されているファイル
Changes not staged for commit インデックスに反映されていない変更ファイル
Untracked files 未追跡ファイル

log

コミットログを表示する。

基本
git log

git log <ファイル名 or ブランチ名>:指定ファイル(ブランチ)のコミットログを表示する。(複数ファイル指定可能)
git log --stat:コミット毎に各ファイルの変更概要を表示する。
git log --oneline:各コミットを一行ずつ表示する。

reset

現在のHEADを指定した状態にリセットする。

HEADを一つ前のコミットに戻す。(ワークツリー、インデックスは対象外)
git reset HEAD^
git reset --mixed HEAD^

git reset --soft HEAD^:HEADとインデックスを一つ前のコミットに戻す。
git reset --hard HEAD^:HEADとインデックス、ワークツリーを一つ前のコミットに戻す。

HEAD インデックス ワークツリー
--soft
オプションなし(--mixed)
--hard

git resetを取り消す。

# 1.戻したいところを調べる。
git reflog

# 2.戻す
git reset --soft HEAD@{<1.で調べた番号>}

revert

既存のコミットを取り消す。
※取り消したいコミットを打ち消すコミットを作成する。

git revert <コミットID>

マージコミットを取り消す場合

マージした二つのコミットのうち、どちらに戻すのか指定する必要がある。

# マージした側のブランチに戻す場合
git revert -m 1 <コミットID>

# マージされた側のブランチに戻す場合
git revert -m 2 <コミットID>

cherrypick

既存コミットの変更を反映させる。
※他ブランチの特定コミットのみを反映するできるコマンド

git cherry-pick <コミットID>

rebase

2つ以上前のコミットのメッセージ変更

# 1.rebaseのTODOリストに対象コミットを追加
git rebase -i HEAD~[対象コミットの順番]

# 2.対象コミットを「pick」からeditに変更

# 3.コミットメッセージを変更
git commit --amend -m "変更後のコミットメッセージ"

# 4.rebaseを継続する
git rebase --continue

コミットをまとめる

# 1.rebaseのTODOリストに対象コミットを追加
git rebase -i HEAD~[対象コミットの中で最古ものの順番]
# or
git rebase -i [対象コミットの一つ前のコミットID]

# 2. 対象コミットの中で最新のものを「pick」にそれ意外を「s(squash)」また「f(fixup)」に変更

# 3.まとめたコミットのメッセージを変更

0
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
0
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?