Edited at

Git サブコマンドめも

More than 3 years have passed since last update.


目的


  • 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