こんにちわ、オオバです。

オオバはGit管理されたファイルを扱うときは、ほぼ100%の確率でSourceTreeを使用します。
Atlassian製で、Windows / Mac両OSで対応していて安定しています(若干重いですが)。

gitはコマンドで操作もできますが、大量の差分を一度に見たいときや、
コミットする対象を一覧できるGUIに慣れてしまうと、なかなかコマンドを使う気にはなれなくなります。

しかし、万能そうに見えるSourceTreeですが、できない事もたくさんあります。

今回はSourceTreeではできない、知っておくと助かるコマンドを紹介します。

📝 目次

過去に削除してしまったファイルの復活

過去に削除してしまったファイルを復活させてまた使いたいという事案は、
開発しているとよく発生します。SourceTreeの削除コミットを元に戻してみます。

git checkout 削除コミットハッシュ^ -- 復活させたいファイルパス  

上記のコマンドで元に戻すことができます。

上記の注意点に気をつけてもらえればと思います。

具体例

以下のようなコミットログがあるとします。

commit d5d618f0d27e8f2de3caa9e66eb2eb2ca17c6787 (HEAD -> master)  
Date:   Mon Jul 29 22:56:21 2019 +0900  

    update text  

commit 1b20a2c90fff42edc29be9703ec5f565290c1ce2  
Date:   Mon Jul 29 22:54:25 2019 +0900  

    delete test.txt  

commit b5e99d730a3abc4b0719d5bb0c010105dbeeec85  
Date:   Mon Jul 29 22:50:30 2019 +0900  

    initial  

SourceTreeだとこのような表示になります。

gitで過去に削除したファイルを復活させる方法_74

1b20a2c90fff42edc29be9703ec5f565290c1ce2 のコミットで
test.txt が削除されていますので、コチラを復活させてみます。

削除コミットハッシュより以前のコミットを指定する

削除コミットを指定する場合は ^をお尻につけることで、一つ前のコミットを指します。 ^ をつけない場合は、削除コミット以前のコミットを指定します。

git checkout 1b20a2c90fff42edc29be9703ec5f565290c1ce2^ -- test.txt  

^ をつけるパターンで記述していますが、上記のコマンドでtest.txtは復活します。

まとめ

大抵のことはGUI(SourceTree)で事足ります。
しかし不慮の事故、オペミスなどでファイルを復活させなければならない、
または削除してしまった作業内容を元に戻したりなどしなければならない時があり、
SourceTreeでは手に追えなくなる時が多々あります。

そんな時に備えコマンドを覚えておく、
ググり方を覚えておくと焦らずに対処でき、
時間を有効活用できるかもしれません。

参考

👉 オススメ記事

2021秋 Asset Refreshセール
100以上のアセットがなんと50%OFF!!オオバもいくつか買いました!
期間 : 10月2日午後3時59分まで