Gitコマンドのメモ

gitに関するメモ

gitの使い方などをメモしていく。随時更新。

git logで変更されたファイルを確認する

git log --name-only

その他にも --stat, --numstat, --name-statusなどで確認できる。

ブランチを作る

git checkout 元にしたいブランチ名
git branch -b 作成するブランチ名

今いるbranchをベースに作られる。

ブランチを消す

ローカルブランチの場合

git branch --merged 基準となるブランチ # マージ済みブランチの一覧
git branch -d 対象のブランチ名 # マージ済みブランチの削除
git branch -D 対象のブランチ名 # 強制削除

--merged は基準となるブランチ名を指定しなかった場合は今いるブランチが対象になる。

リモートブランチの場合

git push --delete origin 対象ブランチ名

ブランチ一覧を見る

git fetch
git branch -a

ブランチ一覧をソートして確認する

git for-each-ref --sort=committerdate --format='"%(committerdate:short)","%(authorname)","%(refname:short)"' refs/remotes --merged

--merged : マージ済みブランチのみ出力 --sort=... : ソート条件の指定(committerdateは最終コミット日、他にもobjectsizeなど色々指定できるようだ) --format=...: 出力フォーマットの指定

ブランチをリモートリポジトリに追加する

git push origin リモートに登録したいブランチ名

uオプションをつけるとupstreamに登録してくれるようだ。

git push -u origin リモートに登録したいブランチ名

ブランチを状態を確認する

git status

めちゃ使うやつ

addを取り消す

git reset HEAD target_file

すべて取り消す場合は target_file を . にする。

git remoteに関するメモ

リモートURLの確認

git remote -v

リモートURLの変更

git remote set-url origin new_url.example.com

git tagに関するメモ

tagの一覧を確認する

git tag

リモートのtagの一覧を確認する

git ls-remote --tags

tagの作成

git tag -a v1.0.0 -m"Happy new tag!"

後から特定のコミットにtagをつける

コミットを指定すれば良い

git tag -a v1.0.0 -m"I forgot to add tag!" 9fcxbe2

tagの削除

git tag -d v1.0.0

リモートへのtagの追加

tag作成後にpushする

git push origin v1.0.0

リモートのtagの削除

ローカルで消した後にpushする。この際 : を忘れないように。

git push origin :v1.0.0

git submoduleに関するメモ

addする

cd path/to/directory
git submodule add https://targetbranch.example.com/

Hugoのテーマを変えるときはthemesディレクトリの下に移動してからやる

submoduleを使っているブランチを持ってきた時に最初にやること

git submodule update -i

これで実際にソースコードを取り込める。本体のブランチを持ってきただけだとsubmoduleのブランチのソースコードは持ってこれない。

submoduleをupdateする

git submodule updateだけでは更新されないので、submoduleディレクトリ配下でgit pullするか、

git submodule foreach git pull origin master

毎回調べてる気がするぞこれ

submoduleを削除する

hugoのテーマを変えたいときによくやる。

git submodule deinit path/to/submodule
git rm path/to/submodule