目的
- git サブコマンドの個人的メモ
- 随時追加更新する
「ワンライナーで add して commit したい!」
既存ファイルに対して全て add します.
$ git commit -am "こみっと〜♪"
「あ!間違えて commit しちゃった」
直前の commit を無効にする
$ git commit --amend
commit 自体を取り消す
$ git reset --soft
「ああ!間違えて commit して共用リポジトリに push しちゃった」
(※ 追記)
危険なのでまず使わないほうがいいと先輩にご指摘頂きました(・・;)
$ git push -f origin HEAD^:master
「リモートのブランチどう削除するんだっけ」
$ git push origin :<branch name>
ちなみにローカルは
$ git branch -d <branch name>
「PR する前に fork 元の最新 の master を pull したい」
Github で fork して PR する時あるあるです. fork したリポジトリで以下のコマンドを実行します.
$ git remote add upstream git@github.com:hoge/fuga.git
$ git fetch upstream
$ git merge upstream/master
「remote の origin/master から checkout したい」
PR 用の hoge ブランチを作りたい場合.
$ git checkout origin/master -b PR/hoge
「今のブランチにこのリビジョンの差分だけマージしたい」
git log
などでリビジョン番号を確認した後に以下のコマンドで適応.
$ git cherry-pick 6348402efe224b006ade984f5cc567112c3886c1
「remote の URL 一覧が見たい」
$ git remote -v
origin git@gitlab.bascule.tv:naoiwata/hogehoge.git (fetch)
origin git@gitlab.bascule.tv:naoiwata/hogehoge.git (push)
upstreams git@github.com:naoiwata/bar.git (fetch)
upstreams git@github.com:naoiwata/bar.git (push)
「今まで add していたファイルをこれから .gitignore に入れて無視したい」
$ git rm -r --cached <指定のファイル>
「変更したファイルを commit せずに作業中のブランチを切り替えたい」
## feature/xxx で作業中
$ git stash
$ git checkout develop
## develop ブランチで作業したら戻る
$ git stash list
## stash したものを選んで反映
$ git stash pop <stash したものの ID>
「tag の名前を変更したい」
0.1.0
というタグ名を v0.2.0
に書き換えたい。
$ git tag v0.2.0 0.1.0
$ git tag -d 0.1.0
任意の tag へチェックアウトしたい
## 現在の tag 例
$ git tag -l
v1.0.0
v0.9.0
## ブランチ作らず v0.9.0 にチェックアウト
$ git checkout refs/tags/v0.9.0
$ git branch
* (HEAD detached at v0.9.0)
master
## ブランチ作って v0.9.0 にチェックアウト
$ git checkout -b test refs/tags/v0.9.0
$ git branch
* test
master