gitの使用例
時々使うけど、覚えてなくて毎回調べている使用法。
stageから降ろす
方法1)
git restore --staged <file>
方法2)
この方法では削除したファイルは戻せない。
git rm [-rf] --cached <file>
方法3)
git reset
stageから全て降ろし、追跡対象も変更前に戻す
git reset --hard
未追跡ファイルを削除する
git clean -df <file>
追跡対象ファイルを変更前に戻す
git checkout <file>
リモートリポジトリの追加
origin
として追加する場合。
git remote add origin <remote url>
git checkout master git push --set-upstream origin master
リモートにpushしたいブランチがあるならブランチ名を変更してpushを繰り返す。
リモートブランチへの切り替え
念のためgit fetch –all
でリモートからフェッチしておく。
git branch -r
でリモートブランチの一覧を取得する。
git checkout <branch>
でリモートブランチを取得して切り替える。
正式にはgit checkout -b <branch> origin/<branch>
。
git branch -vv
でブランチとそのリモートブランチの差異を一覧表示。
タグの作成
まずは、ローカルにタグを作成する。
-a
を指定すると注釈付きのタグになる。
commit
を省略するとHEAD
。
git tag [-a] <tag> [commit]
その後、以下の2つのどれかでリモートにタグをpushする。
git push --tags git push origin <tag>
リモートのタグを削除する
まずはローカルのタグを削除する。
git tag -d <tag>
その後、以下の3つのどれかでリモートのタグを削除する。
git push --delete <remote> <tag/branch> git push <remote> :<tag/branch> git push <remote> :refs/tags/<tag>
リモートで削除されたブランチをローカルから削除する
git fetch --prune
リモートで削除されたタグをローカルから削除する
注意: 元々リモートにあったタグかどうかにかかわらず、リモートに無いローカルのタグが全て削除されてしまう。
git fetch --prune --prune-tags
削除されたタグが分かっているのであれば、個別にローカルから削除する。
git tag -d <tagname>
タグの変更
リモートからタグを削除して、-f
でタグを変更、その後リモートにタグをpushする。
git push --delete origin <tag> git tag -f [-a] <tag> git push --tags
リモートのタグが変わっても、fetch済みのタグには反映されない。 タグをfetchした可能性のあるユーザに、タグの変更を通知する。 通知を受けたら、ローカルからタグを削除してfetchしなおす。
git tag -d <tag> git fetch --tags
HEADはそのままで、作業ディレクトリは一つ前のコミットに戻す
HEAD、ステージングエリア、作業ディレクトリを一つ前のコミットにresetし、 HEADだけを元のコミットに戻す。
git reset --hard HEAD^ git reset --soft ORIG_HEAD
git statusなどで日本語ファイル名を表示する
通常は文字コードで表示されるため、ファイルを判別するのが困難。
ただし、gitで扱うファイルのファイル名に日本語を含めると他にも色々と問題があるので推奨は出来ない。
git config --local core.quotepath false