目次

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