株式会社オズビジョンの@terra_yuccoです。
2016年度、enPiTプログラム履修生として、
7月~ 品川シーサイドの産業技術大学院大学にて学んでいます。
職場ではGit/GitHubはTortoiseGitで操作していますが、
講義内ではCUI操作なので、自分のための覚書も兼ねてまとめています。
誤操作のリカバリ
誤ってmasterブランチでファイルを編集してしまった場合
- git add前
- git checkout -b でブランチ切り替え
- git add後 / git commit前
- git reset [ファイル名]
- git commit後
- git log でコミットIDを調べ、ひとつ前のコミットIDを取得
- git reset <ひとつ前のコミットID>
- ローカルも変更を破棄するなら、git reset --hard <ひとつ前のコミットID>
- git push -u origin master 後
- git log でコミットIDを調べ、元に戻すコミットをあげる
- git revert <該当のコミットID>
- これでcommitが発行されるので、pushすれば元に戻ります
便利小ネタ
WIP PRのための空コミット
git commit --allow-empty -m '[WIP]hogehoge'
参照先がなくなったorigin参照を一括削除
git fetch -p
マージ済ローカルブランチを一括削除
git branch --merged | grep -vE '^\*|master$|release$' | xargs -I % git branch -d %
- これについてはいろいろな方が必要としているようで、Qiitaにも類似エントリがたくさんありました。
- 自社開発ではgit-flowを利用しており、
master
とrelease
なので、こうするのが良さそう。 - enPiTは多分GitHub Flowになるので、たぶんこのままでもいいけど
release
は不要な気がする。
- 自社開発ではgit-flowを利用しており、
参考リンク
おしまい。