はじめに

はじめまして。キャスレーコンサルティングSD(システム・デザイン)部の大塚と申します。

Gitについて、ただいま勉強中の身ですが、
自分が効率よく作業できるようになった知識について、ブログを書かせていただきます。
やりたいなと思ったことが、大抵はできてしまうほどGitにはコマンドが豊富にありますが、
今回はその一部をGitKrakenで操作する方法をご紹介します。

シチュエーション1:この修正を前のコミットに含めたい

シチュエーション2:違うブランチのソースを、コミット単位で取り込みたい

シチュエーション3:コミットを取り消したい

Gitkrakenとは

Gitの数あるGUIツールのうちのひとつで、比較的新しいフリーソフトです。
2016年3月29日に、アメリカのAxosoftが公開しました。
コマンドを打たずに、イメージでGitの操作ができるデザインが特徴です。

シチュエーション1:この修正を前のコミットに含めたい

Amend

下の図は、test_1ブランチに「text_t.txt」がコミットされた状態です。
SnapCrab_GitKraken_2017-6-5_19-19-11_No-00

このコミット【test_1】に、もう1ファイルを追加したいと思います。
右下にあるAmendに✔を入れると、Comment Messageに前回コミット時のコメントが表示されます。
⇒今の修正ファイルを、前のコミットにまとめることができます。

SnapCrab_GitKraken_2017-6-5_19-19-33_No-00

確認すると、コミットは1つだけになっています。

SnapCrab_GitKraken_2017-6-5_19-20-0_No-00

シチュエーション2:違うブランチのソースを、コミット単位で取り込みたい

Cherrypick

下の図には、test_1ブランチとtest_2ブランチがあります。
test_1ブランチにある【test_1】コミットを、test_2ブランチに取り込んでみたいと思います。

取り込みたいコミット(ここでは【test_1】)を右クリックして、Cherrypick commitを選択。
※選択しているブランチは、test_2です。

SnapCrab_NoName_2017-6-7_21-8-27_No-00

コミット確認メッセージが表示されるため、Yesをクリックします。

SnapCrab_NoName_2017-6-7_21-8-39_No-00

下の図のように、test_1ブランチにあったコミットがtest_2ブランチにもコミットされました。

SnapCrab_GitKraken_2017-6-7_21-9-10_No-00

シチュエーション3:コミットを取り消したい

Reset(Soft/Mixed/Hard)

Resetを用いると、「ここまで戻したい」という位置までさかのぼることができます。
コミットを取り消す方法は、以下の3パターンをご紹介いたします。

Soft…コミット前の状態に戻す(Stageまでソースが戻る)
Mixed…コミット前の状態に戻す(Stageよりも前にソースが戻る)
Hard…GUIから完全に消える

Softの場合

まず取り消したいコミットの一つ前のコミットを右クリックし、
Reset (コミット名) to this commit → Soft-keep all changes を選択します。
※今回は1つのコミットを取り消しますが、一気に複数取り消すこともできます。

SnapCrab_NoName_2017-6-7_21-18-45_No-00

以下の通り、修正ファイルは、Stageまで戻りました。

SnapCrab_GitKraken_2017-6-7_21-19-3_No-00

Mixedの場合

Softの場合と同じように、取り消したいコミットの一つ前のコミットを右クリックします。
Reset (コミット名) to this commit → Mixed-keep working copy but reset indexを選択。

SnapCrab_NoName_2017-6-7_21-20-12_No-00

ファイルが、UnStagedの位置まで戻りました。

SnapCrab_GitKraken_2017-6-7_21-20-30_No-00

Hardの場合

SoftやMixedの場合と同じようにして、
今度はReset (コミット名) to this commit → Hard-discard all changesを選択します。

SnapCrab_NoName_2017-6-7_21-21-47_No-00

修正したファイルごと、取り消されました。

SnapCrab_GitKraken_2017-6-7_21-22-3_No-00

まとめ

私自身、GitKrakenを使い始めたとき、日本語の説明が少なく機能をあまり使いこなせなかったのを覚えています。

今回ご紹介したものの他にも、便利な機能はたくさんありますが、

個人利用時によく使われるRebaseについてはこちら参照ください。
(複数人で開発される際には、注意が必要なコマンドでもあります。)

お読みいただきありがとうございます。