the industrial

ブログと言うより自分のためのメモ以外の何モノでもないです。でも読んでくださってありがとうございます。

Sourcetreeの使い方メモ

※この記事は徐々に更新していく可能性があります。

ちょくちょくSourcetreeの使い方について質問されることが多い。

極めて個人的な考えなのだけど、CLIでGit操作を頑張るよりも、GUIでGit操作をしたほうが間違いが少ないと考えているので、Sourcetreeなどのアプリを使うことをおすすめしている。

もちろんCLIでも良いのだけどネ。

Sourcetree

ATLASSIANの製品。

無料で使える割には高性能で安定しているように思う。

僕はここ5年ほどずっと愛用していて、困ったことはあまり※ない。

しかも設定を変更するだけで日本化も簡単。

下記からダウンロード可能。

執筆時点のVersionは 3.0.1 を利用。

ja.atlassian.com

※ものすごく大きなサイズのファイルを参照すると(indexすると)固まる事があるので、その場合だけCLIのgitを使っている。

アカウント設定

⌘, → アカウントタブを選択。

f:id:omiend:20190115111737p:plain

「追加/Add...」ボタンを選択。

GitHubを選択。

「接続アカウント/Connect Account」を選択。

Webブラウザが開くので、GitHubにログインする。(あるいはログインしていれば自動的にSourcetreeに戻る。

SSHを選択。

「保存/Save」を選択。

f:id:omiend:20190115112038p:plain

GitHubへのSSHログイン設定をしていれば、これだけでログイン完了。

f:id:omiend:20190115112142p:plain

clone

⌘+nリポジトリ一覧を開く。

「リモート/Remote」タブを選択。

(ログインに成功していれば)プライベートリポジトリー含めて一覧されるので、目的のリポジトリーを選択。

ディレクトリを選択してClone

f:id:omiend:20190115115937p:plain

git操作

f:id:omiend:20190115121433p:plain

操作でやることといえば、

  • create branch
  • commit
  • push
  • fetch
  • pull
  • checkout
  • merge (merge commit)

このくらい。

一つづつ説明していく。

create branch

f:id:omiend:20190115121251p:plain

現在チェックアウトしているbranchから、子branchを作成する。

例えば、masterからdevelopを作成する場合はこのようにして「Create Branch」ボタンを選択する。

f:id:omiend:20190115120545p:plain

commit

f:id:omiend:20190115143745p:plain

f:id:omiend:20190115145047p:plain

変更箇所をindexに追加し、変更内容を記載して「Commit」を選択。

Commitと同時にリポジトリへPushする場合、「Push changes immediately to origin/branch-name」をチェックする。

f:id:omiend:20190115145051p:plain

push

f:id:omiend:20190115143828p:plain

f:id:omiend:20190115145556p:plain

Pushするbranchを選択する。

「Ok」を選択する。

f:id:omiend:20190115145620p:plain

fetch

f:id:omiend:20190115143837p:plain

fetchはリモートの変更内容をローカルにダウンロードするイメージ。

f:id:omiend:20190115150911p:plain

f:id:omiend:20190115150931p:plain

f:id:omiend:20190115151018p:plain

pull

f:id:omiend:20190115143905p:plain

現在チェックアウトしているbranchの変更を取り込む。

f:id:omiend:20190115151032p:plain

f:id:omiend:20190115151110p:plain

f:id:omiend:20190115151143p:plain

  • Commit merged changes immediately
  • Include messages from commits being merged in merge commit
  • Create new commit even if fast-forward merge
  • Rebase instead of merge (WARNING: make sure you haven't pushed your changes)

f:id:omiend:20190115151359p:plain

checkout

作業するbranchを変更する。

左のbranch一覧から、チェックアウトしたいbranchを選択。

f:id:omiend:20190115150028p:plain

f:id:omiend:20190115150038p:plain

merge (merge commit)

f:id:omiend:20190115143923p:plain

現在のbranchに、他branchの変更を取り込む。

基本的に親branchの変更を、作業branchに取り込む際に行う。

逆に、子ブランチを親branchにマージする際は、必ずPull Requestを行うようにし、何故当該の変更行われ、そして親branchにマージされたのかが後で追えるようにする。

【TODO】omiendの会社の「チーム開発におけるGitブランチの運用」としてまとめる。

f:id:omiend:20190115151851p:plain

「Merge」を選択。

現在のbranchに対してマージしたいbranchを選択。

「OK」を選択。

以下はお好みで。ただし、基本的に「すぐにマージした変更をコミットする/Commit merged changes immediately」くらいしか使ったことがない。

  • すぐにマージした変更をコミットする/Commit merged changes immediately
  • マージコミットでマージされるコミットからメッセージを読み込む/Include messages from commits being merged in merge commit
  • fast-forward マージであっても新たにコミットを作成する/Create a commit even if merge resolved via fast-forward
  • マージではなくリベースする(警告:変更をプッシュしていないことを確かめてください)/Rebase instead of merge (WARNING: make sure you haven't pushed your changes)

f:id:omiend:20190115152004p:plain

マージ完了。

f:id:omiend:20190115152155p:plain

尚、上記は競合/Conflictが発生している状態。

競合/Conflictの解消

競合/Conflictの解消はエディターなどで行う(あるいはお好きな競合解決ツール)。

f:id:omiend:20190115152539p:plain

競合/Conflictを解決した後は、通常のCommitの手順を踏めば良い。

f:id:omiend:20190115152608p:plain

競合解決結果をindexするのを忘れずに。

f:id:omiend:20190115152950p:plain

オッド・トーマス

オッド・トーマス 死神と奇妙な救世主(字幕版) あーーーー!!!!!‬

‪10年に一本の名作だと思う!!!!‬

‪導入から中盤のおちゃらけ含めた謎解き。‬

‪からの絶望しかないクライマックスと、なんだよと思えるハリウッド的な結末…かと思いきや、ラストシーンでボロボロ泣いた!‬

‪ってか今もまだ泣いてる!‬

‪よくぞそのオチにしてくれたなあ!チクショウ!‬

SR サイタマノラッパー2 女子ラッパー☆傷だらけのライム

ASIN:B00FNFCWG2

主人公が女性になったことと、ステージがサイタマからグンマに移った以外は、基本的に前作と同じ流れ。

でも、こちらもなかなかヘビーな流れで、ハードコアな映画だった。

将来への不安を上手く表現されてるかな。

3作目も楽しみw

SR サイタマノラッパー

SR サイタマノラッパー

本当に嫌なのだけど、これでもサイタマ県民の端くれ。

数年前におすすめされたこの映画を見なきゃダメだなと思い鑑賞。

これがオススメどおりなかなかおもしろい。

前編通して主人公が痛いのだけど、それがだんだん心地よくなってくるというか、応援したくなるというかw

クリミナル

クリミナル 2人の記憶を持つ男(字幕版)

ロンドン駐在のCIAエージェント・ビルが任務中に死亡した。彼はアメリカ軍の核ミサイルを遠隔で操作することが可能なハッカー・ダッチマンの居場所を知る唯一の人物だったため、CIAは大きな衝撃を受ける。 CIAはダッチマンの脅威から世界の危機を救うための次なる手段として、ビルの記憶を脳内へ移植する手術をした他人を任務に充てることを検討する。 その移植相手として選ばれたのは、死刑囚のジェリコ・スチュワートだった。移植手術を受けたジェリコは、凶悪犯である自身とエージェントのビルの2つの人格が脳内でせめぎ合う中、記憶が消える48時間以内にダッチマンを探し出してテロを防ぐため、孤独かつ壮絶な闘いに身を投じていく。

主演、ケビン・コスナー

他にはゲイリー・オールドマントミー・リー・ジョーンズライアン・レイノルズガル・ガドットというアホみたいに豪華な出演陣。

そして、めっっっっちゃ面白かった。

とにかくケビン・コスナーがいい味出しすぎている。

ストーリーもそうだし、映画のテンポも良い感じ。

ただ、惜しむらくはゲイリー・オールドマン演じるCIAがアホすぎてちょっと寒かったこと。

だって国家の危機なのに、そのアホさ加減どうにかならんですか?とw

ピクセル

ピクセル (字幕版)

シリアスな映画かと思ったけど、そうだよね、「宇宙人がゲームキャラクターとして侵略してくる」といえば、もはやギャグだよね。

期待とは裏腹にギャグ映画だったのだけど、最近映画で声を出して笑うことが無い俺が”さらに裏切られるほど”腹抱えて笑ったw

素直に面白い一本。

タイムシャッフル

タイムシャッフル(字幕版)

タイムスリップかと思ったけれど、そうではなく未来を映し出すカメラが引き起こす若者たちのバカさ加減を題材にした映画。

バカさといっても、おそらくどんな人間でもやってしまいそうなこと(つまり金儲け)が原因でアクセクスルわけだけど、まあラストのオチが良くも悪くも・・・な感じ。