search
LoginSignup
9
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Git Tips

rmで削除したファイルをstage(index)に上げる

git add <target> --update

ローカルブランチの掃除

tarcking branch

リモートリポジトリから削除されたブランチをローカルからも削除する。

git fetch -p

local branch

雑だが、下のコマンドでリモートにマージ済みのブランチが削除される。

git branch | xargs git branch -d

マージされていないブランチの場合はエラーを吐いて次のブランチの削除を試行する。

error: The branch 'unmerged-branch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D unmerged-branch'.

サブモジュールも一緒に取ってくる

git clnoe --recursive git@github.com:hoge/fuga.git

他のブランチのファイルの変更を取り込む

git checkout <ブランチ名> -- <対象ファイルのパス>

gitの管理対象から特定のファイル、ディレクトリを削除する

ファイルも一緒に削除する

git rm [削除したいファイル]

ディレクトリごと削除する

git rm -r [削除したいディレクトリ]

gitの管理対象からは外すがファイルは残す

--cachedオプションを付けることにより、ファイルを残したまま管理対象から外すことができる。

git rm —-cached [削除したいファイル]

※ ファイルを残した場合は必ず.gitignoreに追記するように。

マージコミットをcherry-pickする

git cherry-pick -m 1 [コミットハッシュ]

cherry-pickをコミットせずに取り込む

$ git cherry-pick --no-commit [コミットハッシュ]

コミットが属しているブランチ一覧

git branch --contains [コミットハッシュ]

HEADとINDEXの差分を表示する

git diff --cached

rebase時に備えてコミットを関連付けておく

rebase時にfixupする予定のコミットをするとき、下記のように対象のコミットを fixup オプションで指定しておく

$ git commit --fixup=<target commit>

するとrebase時に自動的にソートされてfixupコマンドが指定される

$ git rebase -i --autosquash <commit>

pick 0b4d33848 hoge
fixup 4e644a862 fixup! fuga
pick da7553cfe piyo

特定ファイルのログを見る

$ git log -p <filepath>

addを取り消す(stageから除外する)

$ git reset HEAD <filepath>

特定ファイルのみHEADに戻す

$ git checkout HEAD -- <対象ファイル>

untracked fileを削除する

git clean のオプションについてのまとめ | gotohayato.com - https://gotohayato.com/content/104/

# 強制削除
$ git clean -f

# ディレクトリが含まれる時
$ git clean -df

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
What you can do with signing up
9
Help us understand the problem. What are the problem?