Kohshi's Blog
2016/02/18
自分用git コマンドメモ
## ファイル部分的にstaging ```shell $ git add -p
hunk毎にどうするか聞いてくれる ``` ## diff ```shell # diff staged vs working copy $ git diff # diff staged vs head $ git diff --cached ``` ## branch削除 ### local branch ```shell $ git branch -d
``` ### remote branch remote branchはダイレクトに消すコマンドでなくて。local branchに空を指定して、それをPushする ```shell $ git push origin :
``` ## git diff difftoolを使うとmeldなどGUIツールが起動できる。 ```shell $ git difftool hoge.cpp ``` -dを付けるとディレクトリ比較になる(らしい) ```shell $ git difftool -d . ``` ## リモートのタグ表示 ```shell $ git ls-remote --tags ``` ## リモートブランチも含めたブランチ一覧を表示する。 ```shell $ git branch -a ``` ## リモートブランチへCheckOut ```shell $ git checkout -b local_branch_name origin/remote_branch_name ``` ## 個人的によくあやふやになるgit pushの構文メモ ``` $ git push origin
:
``` ## branchを切って作業すべき所をうっかりmaster(もしくは別のbranch)にコミットしてしまった時の対処 他の人がpullしてcheckoutしてると混乱の元なので非常手段 まず、本来branchを切るべきだったコミットのhashを確認 ```shell $ git log --oneline --decorate --graph * zzz (HEAD -> master) * yyy * xxx * www ``` 例えばhash www(本来branchを切るべきだったコミット)で, xxx,yyy,zzzの3つが本来branch上でコミットすべきものだったとする 本来branchを切るべきだったbranchを切ってcherry-pickする ```shell $ git branch mybranch www # mybranchを本来切るべきだった箇所から切る $ git checkout mybranch # mybranchへ移動 $ git cherry-pick www...zzz # mybranch上でxxx,zzz,zzzをpick。hashは新しくなる。注意点は...の左側はxxxじゃなくてwww(ひとつ前)にすること ``` mybranchとmasterにそれぞれ同じコミットが別hashで追加されてるのでmasterを戻す ```shell $ git checkout mater $ git reset --hard www # masterを戻す。HEAD-2とかHEADから2つ戻すような記述も可 ``` pushする(他のユーザ注意喚起が必要) ```shell $ git checkout mybranch $ git push origin mybranch # mybranchをpush $ git checkout master $ git push --force origin master # masterを強引にpush ```
ツイート
新しい投稿
前の投稿
ホーム
登録:
投稿 (Atom)