github メモ

■開発作業
git checkout -b hoge #作業用ブランチを作成
★自由にコード等を編集する.
git commit -m "fix bug" #変更内容をコミット
git push origin hoge #自分のレポジトリにプッシュ
★github ページに言ってPull Request を作る.
★権威ある人に merge してもらう.

■自分のレポジトリを最新の状態に更新する
(git remote add upstream git@github.com:foo/bar.git)← upstream の登録は一度やればいい
git checkout master #作業ブランチを master に
git pull upstream master
git push origin master #自分のレポジトリにpush

■作業ブランチの確認
git branch

■作業ブランチをhogeに変更
git checkout hoge

■url の確認
git remote -v

■originの変更
git remote set-url origin git@github.com:foo/bar.git

■upstreamの変更
git remote set-url upstream git@github.com:foo/bar.git

広告

git で特定のファイルだけ取ってくる(自分用メモ)

git checkout fname

commit 前のファイルを git stash で上書きしてしまった!どうする?(自分用メモ)

要約
git stash pop が使えないか検討しよう.

背景
共同作業しているプロジェクトで,「どれどれ,最近の他の人の作業どうなってるかな」という軽い気持ちで git pull したあなたは pull が失敗することに気づいた.「よくわかんねえな」と呟いたあなたはさらに何気なくgit stash してしまう.とりあえずチームの作業を確認したあなたは,作業中だったエディタに向かった.そして異変に気づく:「あれ…このファイル,前回の commit の状態に戻されてるぞ.」そう,あなたが前回の commit から数日間の間に行った大量の変更は消し去られ,数日前の状態に戻ってしまったのだ.

対処
“stash”というのは,何かをこっそり隠すだとか取り除けておく,というような意味合いの言葉です.
その名前が示唆するように,git stash したとき,先程まで保存されていたファイルは(保存されていなかったとしたら流石にアウトだと思うので,エディタが自動的に保存しているバックアップなどを探すしかないでしょう)どこかに置かれています.

最後の stash で退避したファイルを戻すには git stash pop すれば良いようです.

習慣による回避
このような回復手段が git に備わっていることは大変素晴らしいことですが,驚いたり焦ったりすると利用可能な思考のリソースが削がれてもったいないので,日頃から些細な変更のあとにも躊躇なく commit するといいんだろうな~.

2018/01/01 追記
矢澤にこエヴァンジェリストさん情報:git stash save "hoge"のようにすると良いのかもしれない

山本悠滋‏さん情報:stash@{1} みたいに指定すればdiffも見れたはずです

時間があるときに調べて書き足すこと
git stash list とかしたときに幾つか stash の結果が出てくるけど,0が一番新しいやつなのか?とかよくわからなかった.stash を複数回やってしまった場合などに回復するためには stash list で得られたリストの時系列をちゃんと知っておくべき.