====== gitの使用例 ======
{{tag>git}}
時々使うけど、覚えてなくて毎回調べている使用法。
==== stageから降ろす ====
方法1)
git restore --staged
方法2)
この方法では削除したファイルは戻せない。
git rm [-rf] --cached
方法3)
git reset
==== stageから全て降ろし、追跡対象も変更前に戻す ====
git reset --hard
==== 未追跡ファイルを削除する ====
git clean -df
==== 追跡対象ファイルを変更前に戻す ====
git checkout
==== リモートリポジトリの追加 ====
''origin''として追加する場合。
git remote add origin
git checkout master
git push --set-upstream origin master
リモートにpushしたいブランチがあるならブランチ名を変更してpushを繰り返す。
==== リモートブランチへの切り替え ====
念のため''git fetch --all''でリモートからフェッチしておく。
''git branch -r''でリモートブランチの一覧を取得する。
''git checkout ''でリモートブランチを取得して切り替える。
正式には''git checkout -b origin/''。
''git branch -vv''でブランチとそのリモートブランチの差異を一覧表示。
==== タグの作成 ====
まずは、ローカルにタグを作成する。
''-a''を指定すると注釈付きのタグになる。
''commit''を省略すると''HEAD''。
git tag [-a] [commit]
その後、以下の2つのどれかでリモートにタグをpushする。
git push --tags
git push origin
==== リモートのタグを削除する ====
まずはローカルのタグを削除する。
git tag -d
その後、以下の3つのどれかでリモートのタグを削除する。
git push --delete
git push :
git push :refs/tags/
==== リモートで削除されたブランチをローカルから削除する ====
git fetch --prune
==== リモートで削除されたタグをローカルから削除する ====
**注意: 元々リモートにあったタグかどうかにかかわらず、リモートに無いローカルのタグが全て削除されてしまう。**
git fetch --prune --prune-tags
削除されたタグが分かっているのであれば、個別にローカルから削除する。
git tag -d
==== タグの変更 ====
リモートからタグを削除して、''-f''でタグを変更、その後リモートにタグをpushする。
git push --delete origin
git tag -f [-a]
git push --tags
リモートのタグが変わっても、fetch済みのタグには反映されない。
タグをfetchした可能性のあるユーザに、タグの変更を通知する。
通知を受けたら、ローカルからタグを削除してfetchしなおす。
git tag -d
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