【Git】一つ前のcommitに戻す/他のブランチのcommitを取り込む
公開日:
:
Ruby on Rails, Web技術・ノウハウ Git
久しぶりにRailsでプログラムを書いている関係で、これまた久しぶりにgitを使っています。
で、早速やり方を忘れていたケースが出てきました^^;
個人的な忘備録として書き残しておきます。
目次
一つ前のcommitに戻す
要は修正前の状態に戻したいというときです。
選択肢1:git revert
今やったcommitで変更された分を打ち消すcommitをすることで、結果的に修正前(前回commit時点)に戻る、という方法です。
git log に履歴が残るので、
- 後から状況を追いやすくなる
- commitポイントができるのでrevertする前に戻しやすい
というメリットがあります。
使用例:
①直近のcommitのID(ハッシュ)を調べる
f693…が直近のcommitですね。コイツ(このファイル修正)を取り消したい。
② git revert [①のID]
> git revert f693…
赤枠のcommitが追加されました。このcommitのファイル変更内容はちょうど前のcommitを打ち消すような内容になっています。
選択肢2:git reset
もうひとつの選択肢はcommit自体を無かったことにするという方法です。
取り消したいcommitをまるっと消せてわかりやすいのですが、git revet と違ってgit log に履歴が残らない点に注意。
使用例:
① 選択肢1と同じように直近のcommitのID(ハッシュ)を調べる
② git reset –hard HEAD^
※「HEAD^」で現在のHEADのひとつ前のcommitが指定される
> git reset –hard HEAD^
git logでログを開くと、直近のcommit(ID f693…)の部分が消えているのがわかります。
他のブランチのcommitを取り込む
次は「過去のcommitを消したりしてるうちに必要なcommit(変更内容)まで無くなってしまった…」という場合の対処。
こんなときはgit cherry-pickを使います。
使用例:
ブランチdevelopから消えてしまった変更内容がブランチAには残ってる!
そこで、ブランチAのgit logにあるcommit(以下赤枠)を自分のブランチ(例:developブランチ)に取り込みます。
①取り込み対象のcommit IDをメモ
> git log ブランチA
②取り込むブランチでgit cherry-pick
> git co develop
> git cherry-pick f693…
これで①のcommit(つまりファイル修正内容)をdevelopに取り込みました。
> git log develop
git log で見てみるとちゃんとログに追加されてますね。
ひとこと
gitはバージョン管理をするのにとても便利なのですが、ときたま「こういうときどうするんだろう〜?」と考えてしまいます。都度悩むのも時間がもったいなのでこのブログにメモしておきます。
参考
ブランチとは【ブランチ】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ
PR
関連記事
-
-
『Post Lists View Custom』で投稿一覧・固定ページ一覧の表示項目をカンタンON/OFF
投稿一覧・固定ページ一覧の表示項目を変えられるプラグイン『Post Lists View Cus
-
-
『Active Preview』で編集内容をリアルタイムプレビュー
最近使ってみたWordPressプラグイン『Active Preview』が便利だったのでご紹介しま
-
-
macでローカル環境のopensslをバージョンアップする手順 〜 brewで更新→rbenvでrubyを再インストール 〜
先日自社の運営サイトのSSL証明書の更新作業をしたのですが、ローカル環境として使っているmacで
-
-
ムダな履歴データの蓄積をストップ!『Revision Control』で投稿ページ・固定ページの変更履歴をスマートに管理
投稿ページ・固定ページの「変更履歴」を制御するプラグイン『Revision Control』をご
-
-
【保存版】WordPressのサイトをmacのローカル環境にコピーして動かす方法
WordPerssで作った既に公開中のWebサイトについて、サイトを丸ごとローカル環境に持ってき
-
-
自作テーブルの追加からデータ取得まで!WordPressでデータをDBに保持して使う方法
WordPressでWebサイトを作ったとき、何かしらのデータをデータベース上に保持しておき必要
-
-
URLを指定するだけでWebサイトを丸ごとダウンロードできるMacアプリ『SiteSucker』
Web制作をしていると、特定のサイトをローカルにダウンロードしたいと思うことがありませんか?
-
-
Rubyで小数点第2位以下を切り捨てる方法
Rubyには標準で便利なメソッドがたくさん用意されています。数値の取り扱いについてもNumericク
-
-
【SEO初心者向け】検索順位を確実に上げるためのWordPress×SEO基礎知識
「うちのホームページをネット検索に強くしたい。でもやり方がわからない。」 WordPressで
-
-
次のページが表示されない!WordPressでページ送りができないときの原因と対処方法
先日対応したお客様のWordPress案件で、category.phpに「同カテゴリーに属する情