LoginSignup
8
11

More than 1 year has passed since last update.

Gitでやりたいことをやりたい時に参考にするサイト集

Last updated at Posted at 2017-04-19

rebase

〇〇を設定したい

やりたいこと コマンドで設定する場合 ユーザーの.gitconfigに書く場合 参考サイト
クローンしても
改行コードを変えたくない
$ git config --global core.autoCRLF false [core]
    autoCRLF = false
windows環境の git で改行コードの自動変換に注意 - Qiita
【git】git add したらCRLF will be replaced by LF - くわこのpermission denied.
ローカルブランチ名と同名で
リモートブランチにpushしたい
$ git config --global push.default current [push]
    default = current
gitのpush.defaultに関するノウハウ
日本語ファイルの文字化けを直したい $ git config --global core.quotepath false [core]
    quotepath = false
日本語のファイル名が文字化けした時の対応方法 - Qiita
設定ファイルを開きたい $ git config --edit --global
設定を確認したい
# 実行した場所で有効になっている設定を見たい(リポジトリと関係ないとこで実行するとsystemとglobalが見れる。)
$ git config -l

# システムの設定だけみたい
$ git config --system -l

# ユーザー固有の設定だけみたい
$ git config --global -l

# 任意のリポジトリの設定だけみたい
$ git config --local -l

リポジトリを〇〇したい

# ディレクトリ名を指定してクローン
$ git clone {url} {ディレクトリ名}
# ブランチを指定してクローン
$ git clone -b {ブランチ名} {url}
# フェッチ
$ git fetch origin
# フェッチ : 削除されたリモートブランチをoriginから削除
$ git fetch --prune
# フェッチ : 全ブランチを更新して削除されたブランチもoriginから削除
$ git fetch --all --prune
# プル
$ git pull origin

/**リポジトリを最初に作ってプッシュ*/
# 初期化して
$ git init
# リポジトリを設定して
$ git remote add origin {リポジトリのURL}
# コミットしたいファイル対kして
$ git add {ファイル}
# コミットして
$ git commit -m '{コミットコメント}'
# プッシュする
$ git push origin master

ブランチを〇〇したい

# ブランチを作ってコミットなしブランチだけプッシュしたい
$ git checkout -b {ブランチ名}
$ git push -u origin {ブランチ名}

# ブランチを確認したい(ローカル)
$ git branch
# ブランチを確認したい(リモート)
$ git branch -r

# ブランチ名を変更したい(ローカルブランチ名を変更 > リモートブランチ削除 > ローカルブランチPush)
$ git branch -m {旧ブランチ名} {新ブランチ名}
$ git push origin :{旧ブランチ名}
$ git push origin {新ブランチ名}

# 今のブランチを確認したい
git branch --contains=HEAD

# プッシュしていないコミットを確認したい
$ git log origin/{ブランチ}..{ブランチ}

# ユーザー名とメールアドレスを指定してコミットしたい
$ git -c user.name='ユーザー名' -c user.email='メールアドレス' commit -m 'コミットコメント'

# シンプルに(-s --short)まだコミットしていないものを見たい
$ git status -s

stashしたい

// stashの一覧を確認したい
$ git stash list

タグを〇〇したい

# 既存タグの確認(コメントを添えて)
$ git tag -n

# 既存タグの確認(リモートの)
$ git ls-remote --tags

# 軽量タグを打ってPush
$ git tag {タグの名前}
$ git push origin {タグの名前}

注釈をエディタで書いてタグを打つ
$ git tag -a {タグの名前}

注釈も書いてタグを打つ
$ git tag -am {注釈の内容} {タグの名前}

タグを削除してPush
$ git tag -d {タグの名前}
$ git push origin :{タグの名前}

チェリーピックしたい

# 特定のコミットとコミットの間を全部チェリーピック
$ git cherry-pick {特定のコミットのハッシュ1}..{特定のコミットのハッシュ2}

# マージのコミットをチェリーピック
$ git cherry-pick -m 1 {MergeのCommitのハッシュ}

ハッシュを〇〇したい

# HEADのハッシュを見たい
$ git rev-parse HEAD

# ハッシュ値が含まれているブランチをリモートのブランチからリストアップする
$ git branch -r --contains {ハッシュ値}

差分を見たい

# ローカルの変更を確認したい
$ git diff HEAD
# ブランチで差分
$ git diff {ブランチA} {ブランチ名}
# コミットのハッシュで差分
$ git diff --stat --name-only {コミットA} {コミットB}
# タグで差分
$ git diff --name-only {old tag name} {new tag name}
# 特定ファイルの差分
$ git diff {old tag name} {new tag name} {特定ファイル}
# 特定フォルダ配下の差分
$ git diff --name-only {old tag name} {new tag name} {特定ディレクトリ}

履歴を見たい

$ git log [オプション]

# 変更したファイル名を見たい
$ git log --name-only {(必要なら)ハッシュ}

# 履歴を見る(タグ情報添え)
$ git log --decorate

# 履歴を見る(Diff添え)
$ git log -p

# 履歴を見る(ファイル指定)
$ git log -p {ファイルパス}

# {x}個分コミットの履歴を見る
$ git -p -{x} --{fileNameへのパス}

# ハッシュだけみたい(コメントを添えて)
$ git log --pretty=oneline
# ハッシュだけみたい(本当にハッシュだけ)
$ git log --pretty=oneline | awk '{print $1}'

# 特定日以降だけみたい
$ git log --after='2017-08-10 00:00:00'

# オプションを忘れたので確認したい
$ git log -help

# マージの履歴を見たい----------------------------------
# マージだけみたい
$ git log --merges
# 直近マージされたファイル名を見たい
$ git log -m -1 --name-status
# マージ以外だけみたい
$ git log --no-merges
# マージ元を非表示
$ git log --first-parent

# 履歴から探したい----------------------------------
# コミットのハッシュ値全部見る
$ git rev-list --all

とにかく戻したい!消したい!削除したい!

# ブランチを削除したい(普通)
$ git branch -d {branch名}
# ブランチを削除したい(強制)
$ git branch -D {branch名}
# ブランチを削除したい(リモート)
$ git push -d origin {ブランチ名}

# 特定のファイルだけ戻したい
$ git checkout {コミットのハッシュ値} {ファイルパス}

# ローカルの変更をなかったことにしたい(全部)
$ git reset --hard HEAD
# ローカルの変更をなかったことにしたい(特定ファイル)
$ git checkout {ファイル名}

# addを取り消したい
$ git reset HEAD .

# 直前のコミットを取り消したい
$ git reset --soft HEAD^

名前を変更したい

# ディレクトリ名
$ git mv {古いディレクトリ名} {新しいディレクトリ名}

インストールしたい

GitHub

困った

8
11
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
8
11