0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Git講習第7話「ミスからの復活:Gitのリカバリー方法」

Last updated at Posted at 2023-07-12

この記事について

本記事は社内で実施したGit講習のスライドを元に作成された記事です。
Gitを使ってはいるものの、どういう構造になっているかとか仕組みについてはあまりわかっていないという方たちを対象にしています。

前回

イントロダクション

スクリーンショット 2023-07-12 19.42.49.png
Gitを使ってチームでファイルを共有することは便利ですが、作業ミスでチームに迷惑をかけてしまうこともあるかもしれません。
そんな時でもさっとミスをリカバリーできる便利な機能を学んでいきましょう。

リバート

revertは、特定のコミットの変更を元に戻すためのコマンドです。これは過去のコミットの変更を取り消す新しいコミットを作成します。
スクリーンショット 2023-07-12 19.46.08.png

実践

リバートを実践してみます。
まずはファイルを変更してコミットします。

echo 'ABC' >> hello.txt
git add hello.txt
git commit -m "add ABC"

コミットができました。
次にリバートをするために必要なコミットIDを確認したいのでログを参照してみましょう。

git log –oneline

このコマンドを実行すると下記のようにログが表示されます。「ab5937f」の部分がコミットIDです。

128fe0b (HEAD -> main) add ABC
ab5937f add ABC
・
・
(省略)

コミットIDがわかったのでリバートを実行してみます

git revert 128fe0b

これでリバートができました。
ファイルを見ると先ほどのコミットが取り消しされているはずです。

リセット

resetは、特定のコミットに強制的に移動するためのコマンドです。これにより、一連のコミットを一度に元に戻すことができます。
スクリーンショット 2023-07-12 19.52.51.png

実践

リセットを実践してみます。
まずはログを確認します。

git log --oneline

下記のログが表示されました。

e39bfde (HEAD -> main) Revert "add ABC"
(省略)
95954ba ファイルの内容を変更したよ
ac4c113 初めてのコミット

今回は95954baの時点まで戻してみようと思いますので下記のコマンドを実行します。

git reset --hard 95954ba

これでリセットができました。
ファイルを見ると一気にファイルの状態が戻っているはずです。

チェリーピック

cherry-pickは、他のブランチから特定のコミットを選び、現在のブランチに適用するためのコマンドです。これにより、全ての変更ではなく、特定のコミットだけを選んで取り込むことができます。
スクリーンショット 2023-07-12 19.59.23.png

実践

チェリーピックも実践してみます。

まずは新しくブランチを作成し、そこでファイルに2つの変更を行い、それぞれコミットをしてみます。

git checkout -b branchD
echo 'changeA' >> hello.txt
git add hello.txt
git commit -m "add changeA"
echo 'changeB' >> hello.txt
git add hello.txt
git commit -m "add changeB"

これでbranchDに2つのコミットが行われました。
ログを見てましょう。

git log --oneline
7ac268a (HEAD -> branchD) add changeB
7047eb2 add changeA
(省略)

2つのコミットが確認できましたね。
では、mainブランチに戻って7047eb2のコミットだけをmainに取り込んでみます。

git checkout main
git cherry-pick 7047eb2

これで7047eb2のコミットの内容だけがmainブランチに反映されました。

次回

第8話「レビューの力:プルリクエストの利点」へと続きます
https://qiita.com/sho_fcafe/items/aa750549e67061539f5a

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?