DIVE【モンスターダイブ】JavaScriptの設定を有効にしてご利用ください。無効の場合、当サイトを正常にご利用できません。DIVEでも数年前からGitやSubversionでファイルのバージョン管理を行っているのですが、元来のビビり症に加え、デジタル世界全般=「インダストリア(出典)」的発想により、以前やったことのある操作であっても、「何事かやらかしてしまうのではないか」「このコマンドを実行したらしばらく沈黙したのち奇音を発して爆発するのではないか(あるいは個人情報がすべてネット上に公開されるのではないか)」という恐怖が一向に拭えません。今回は、そんなアナログネイティブにも優しいGUIツール「SourceTree」を使ったGitの基本的な使い方についてまとめてみます。SourceTreeのダウンロード&インストールはこちらから。作業履歴を管理できるファイルを共有できるGitの主な機能としてはこの2つがあげられます。他のPCとのファイル共有やバックアップについては置き場所となるサーバ(リモートリポジトリ)が必要になりますが(※MDの標準環境ではBacklogと連携させております)、自分のPC(ローカルリポジトリ)だけでバージョン管理だけすることも可能です。いうことで、せっかくなのでこのブログ記事も草稿や使用する画像をSourceTree(Git)で管理してみました。そのリポジトリ作成の様子を無駄にアニメーションGIFにしましたのでこちらどうぞ。2.3.2を使用しております。履歴が追加されたGit用語&Sourcetreeの基本操作クローンサーバ上のリポジトリ(リモートリポジトリ)の内容を、自分のローカル環境にそのままダウンロードすること。プロジェクトに参加する最初の最初に必要です。プルリモートリポジトリから変更履歴をダウンロードすること。具体的にはダウンロード+マージが行われ、ローカルリポジトリに変更内容が取り込まれます。MDでは作業開始する時は必ずプルするよう申し渡されております。フェッチプル同様、リモートリポジトリから変更履歴をダウンロードすることですが、コピーが生成されます。プルと異なりマージは行われず、ローカルリポジトリには影響しません。フェッチした後にリモートブランチをマージすれば、ローカルリポジトリに変更内容が取り込まれます。前述のとおりMDではプルを使っていますが、ネット検索すると、プルではなくフェッチ+マージを推奨する記事も多いです。コミットリポジトリに変更履歴を残すこと、またはその履歴のこと。後から振り返って辿れるよう、タスクが完了した時などキリのいいタイミングで行います。Backlogでは、コメントに課題のキーを入れるとBacklog上のその課題にもコメントされます。プッシュコミットをリモートリポジトリにアップロードすること。コミットごとにやっても良いですし、細かくコミットを分けている場合などは何個かまとめて行ったりします。ブランチコミットの流れを分岐させること、または分岐した流れのこと。一緒だけどお互いいろいろあるし違う道行くね...みたいな。以下のような時に、ブランチを切ることが多いと思います。公開フェーズが複数ある時チェックアウトローカルリポジトリを特定のブランチ、コミットに切り替えること。ブランチを切り替えて作業する他、過去のコミットに戻ってファイルの中身を確認したりすることもできます。マージブランチのコミットを他ブランチへ統合=マージします。同じグループが違うルートで登山中、それぞれ道すがら出会った人と一緒に登ることになったりいろいろあったけど、頂上で合流してみんなで乾杯...みたいな。Gitが良きようにマージしてくれますが、こんなかんじでマージしましたよという内容がコメントされた新たなコミット(マージコミット)が作られます。リベースブランチのコミットを他ブランチに追加します。コミットが改変されて履歴は一本化することになります。行列の分岐していた列に並んで整理券ももらったけど、最終的に1列にしたいからということで最後尾に並び直し。新たな整理券が発行されることになった...みたいな...??リベース後マージすることで、リベースしたコミットの最新まで追いつきます。コンフリクトマージを行った際に、こんなメッセージが表示されることがあります。マージする&されるブランチで同一箇所が変更されていると、Gitもどちらを良しとすればいいのかわからず、競合=コンフリクトしてますよと教えてくれます。コンフリクトするとそのやらかした感に軽くパニックになりますが、落ち着いて解決しましょう。マージするブランチのファイルを正とするコンフリクトしているファイルを手動で修正するタグ特定のコミットを後から参照しやすくするために付けておくと便利です。まとめいつものフロー(クローン、プル、コミット、プッシュ)以外の操作が必要になると、その操作方法や概念をいちいち検索している自分のための覚書として記事にしてみましたが、どなたかのお役に立てれば嬉しいです。正直なことを言うと、マージとリベース、プルとフェッチに関しては、その使いどころがまだしっかり理解できていないというのが本当のところでして、、、「これぞ」という具体例が見つかった暁にはこの場でまたご報告したいと思っています。プロダクション企業ではたらくひとのための「言葉遣いのお作法」2014.01.17□(視覚)とココロでカンジル・デザイン。Webディレクターのメッセージ術2012.06.20AIPOでスケジュール管理が使えなくなった場合2010.08.30AIPO|4→5にアップデート後、既存ユーザのインターフェースが変わらない場合。SourceTreeでGitを操作する【基本編】テンプレートエンジン事始めハンバーガーメニューをハンバーガーで作ってみた「Snap.svg」で、ぐにゃっとアニメーションさせてみた。「Snap.svg」で、ぐにゃっとアニメーションさせてみた。