blame:ファイルの各行の最終コミットは誰なのかを確認する

ユースケース
ある時期にコミットされたファイルに対して、そのファイルの調査したい箇所が最後に誰が更新したコードなのかを調べたい時

【Forkを用いた調査方法】
調べたいタイミングのコミット箇所をまずは選択する。
その後、Changesタブ or FileTreeを選択し、調べたい対象のファイルを見つける。
調べたい対象のファイルを選択した状態で右クリックを行い、Blameをクリックする。
すると、モーダルウインドウが表示され、対象ファイルの左側に、どのタイミングでコミットされたものかが表示される。

f:id:yoneyore:20190827015106p:plain

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

Stashを用いて変更を一時退避

[やりたいこと]
リポジトリに対して修正を行っていたが、一時的に同じブランチに対して先行して変更したい内容が現れた。
今直している内容のままではテストが動かせなく、ブランチを新しく作成するなどごにょごにょすると時間かかるので、手軽にブランチの元の状態で修正を行いたい。

[対応方法]
Stash機能を用いれば良い。

[ForkでのStash保管方法]
修正を行ている状態で、Stashアイコンをクリックする。

f:id:yoneyore:20190822174003j:plain
Stash
モーダルウインドウが表示されるので、適当な名前を付けて保管する。
この際、どのブランチか?という情報は補間してくれるので、どの様な内容かということを記載したら良い。
また、チェックボックスは新しく作成したファイルはStash対象として退避させるか?という事なので、基本的にはチェック付けとけばよいと思う。OKボタンを押すと、修正したファイルなどは、一度ブランチの元の状態に戻される。
その後、同じブランチに対して、一時的に行いたい内容を操作すれば良い。

[ForkでのStash復元方法]
Forkの左端のペインに表示されている欄で、Stashesから戻に戻したい内容をフォーカスしたのち右クリックする。 Apply 'On ブランチ名 コメント'という部分を選択する。
Stashに成功した場合、Stashファイルを削除するか?というチェックボックスがあるので、それらを選択した後にOKとすればよい。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitLab実践ガイド impress top gearシリーズ

GitLab実践ガイド impress top gearシリーズ

パッケージエクスプローラとエディタで開いているコードを連動させる

[行いたい事]
eclipseのエディタで開いているコードが、パッケージ上どこに存在するかを簡単に見つけたい。

[対応方法]
パッケージエクスプローラの両方向の矢印アイコン(エディタにリンク)をクリックする。
以後、カレントエディタに連動して、パッケージエクスプローラ上に該当モジュールが選択される様になる。

f:id:yoneyore:20190821225226j:plain
エディタにリンク

[その他]
細目にON/OFFした方が幸せなこと多いかも。
(ショートカットキー知っている方教えて下さい。。。)

JavaエンジニアのためのEclipse パーフェクトガイド

JavaエンジニアのためのEclipse パーフェクトガイド

Forkでファイルの修正履歴を確認する方法

ファイルの修正が行われているコミットを選択する。
下のペインにFile Treeというタブが表示されるので、それを選択する。
そうするとファイルツリーが表示されるので、対象のファイルをフォーカスさせた状態で右クリック後Show File Historyを選択する。
結果、File Historyというモーダルウインドウが表示され、そこに対象ファイルのコミット履歴が表示される。
なお、任意のコミットを二つ選択を行った後に右クリック後External Diffを選択する事で、変更箇所比較を行う事が可能である。(※1)

※1 事前に[file] - [preferences]を選択した後、Integrationタブ内のExternal Diff Tool欄に比較ツールを設定しておく必要がある。当方は、今までWin Mergeを用いていたが、最近はMS VSCodeを設定して利用している。

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

はじめてのVisual Studio Code (I・O BOOKS)

はじめてのVisual Studio Code (I・O BOOKS)

MySQL Workbenchでデータをインポートしようとすると「Access Denied」というエラーが発生する

【事象】
MySQL Workbenchでデータをエクスポートし、Structure & Dataモードで新規作成したスキーマに対してデータをインポートを行った。
しかし、「Access denied; you need (at least one of) the SUPER privilege(s) for this operation」というエラーが発生して、データをインポートが行えない。

【前提】
・権限自体の設定は誤っていない、きちんと設定されている
・log_bin_trust_function_creators = 1 は設定されている

【対応方法】
[対応方法1:SQLを編集する]
エクスポートした状態でそのままインポートしようとすると、権限を操作する様なSQLがいくつか出力されてしまっている。
そこで、MySQL Workbenchでインポートを行う前にSQLを編集すれば、インポートが行える。
MySQL5.7においては、(多分)以下をSQL文中から削除することで、インポートが行える様になる。
 ・SET @@SESSION.SQL_LOG_BIN=0
 ・SET @@GLOBAL.GTID_PURGED='';
 ・DEFINER=`hogehoge`.@`hogehoge2`
 ・SET @@SESSION.SQL_LOG_BIN=@@MYSQLDUMP_TEMP_LOG_BIN;

[対応方法2:CUIにて-fオプションを用いる]
MySQL Workbenchでインポートを行おうとすると、実行したSQLがコンソールに表示される。
そのSQLコマンドプロンプトにて実行を行う。
その際、-fオプションを付与して実行を行う。(※1)
そうすることで、対応方法1でエラーになっていた箇所はエラーメッセージは発生するものの、スキップしながら実行を行える。
但し、DEFINER~のところは編集していた方が好ましい(※2)。

※1 コンソールに表示されているSQLのオプションは、"-host"などの記載になっている場合があるので、その際には"--host"と編集して貼り付ける。
※2 前提条件に記載している権限の状態が誤っていないという部分に反しやすいので。自身では合っていると思っていても、実際には設定が足りていない、別の設定が効いてきてしまうという状態に陥りやすい(自身がそうなので…)。

Forkを用いたcherry-pickを行う方法

【前提】
・Fork for Windowsを利用していること(※1)
・cherry-pick(※2)を知っていること

※1 とはいえ、Mac版とかも同じかとは思いますが…
※2 ざっくり書くと、対象ブランチにコミットした内容を他のブランチに反映する際に、手でせっせこコピペ&コミットするのではなく、もう少し機械的に行う作業のこと

【方法】
1.まずは自分がコミットしたいブランチに対してモジュールをコミットする。
2.別のコミットしたいブランチに切り替える。
3.先ほどコミットした対象を右クリックし、Cherry-pick Commitをクリックする。

f:id:yoneyore:20190815232040j:plain
cheryy-pickを実行するための選択方法
4.ポップアップが出るのでOKを選択する。
5.コンフリクトしなければそのままコミットされるので、その後プッシュすればリモートリポジトリに反映できる。コンフリクトした場合は、マージ作業を行い、その後コミット&プッシュすれば良い。

【補足事項】
・マージと比べ、どこから引っ張ってきたのか分からないので、追跡性には乏しい。とはいえ、手作業でブランチ切り替えてせっせこコミットするのと比べれば、段違いである。
・あるブランチでは、これだけみたいなのが少なくともForkでは行えない(私がやり方知らないだけかも)ので、コミットする粒度は考える必要がある。但し、小さくし過ぎると、それだけcherry-pickする回数が増えるので、どの様な単位でコミットすべきかはケースbyケースである。

git-fork.com

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

わかばちゃんと学ぶ Git使い方入門〈GitHub、Bitbucket、SourceTree〉

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

P761 vhdファイルのマウントを用いて、バックアップファイルをマウント

Windowsのディスクの管理機能には、vhdファイルをマウントする機能が実装されている。
また、Windowsのバックアップファイル(システムイメージ形式)は、vhdファイルとして保存される。
そのため、ディスクの管理機能でマウントしてあげれば、ファイルレベルでのリストアが可能になる。

ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習

ハッキング・ラボのつくりかた 仮想環境におけるハッカー体験学習