SlideShare ist ein Scribd-Unternehmen logo
1 von 22
Windows環境でのGit (2016.8)
石坂忠広(opcdiary.net)
自己紹介
• Windows Gitで検索
• 静岡の方から来ました
• 最近はやっている仕事がよくわかりません
コマンドラインツール
Git for Windows Ver. 2.9.3.2
• 標準的なWindowsでのGitツールセット
• https://git-for-windows.github.io/
• Msys2/mingw-w64ベースでの開発
• Gitだけでなく、基本的な動作に必要なPerl, sshのようなMsys2/MinGuのツール、bash、コンソールアプリ
(minty)を同梱している。
• GUIセットアップ
• 昨年秋ぐらいに中の人がMS社員になったらしいので、きっと開発が安定する。
• msysGit時代を考えたら非常に早いレスポンスで本体のバージョンアップに追従&バグ修正
• 開発はGit for Windows SDKをインストールして行う
• 実質的にMsys2/mingw-w64の環境だが、上記の通り若干違いがあるので、混ぜるな危険。
Posh-git
• https://github.com/dahlbyk/posh-git
• Gitツール自体では無い
• PowerShell上でGitの操作を補助する
• コマンドの補間
• git ch<tab> --> git checkout
• プロンプトへのgitの状態表示
• 右図
• PSReadLineとの併用がお勧め
• https://github.com/lzybkr/PSReadLine
• PSReadLineはWindows 10のPSには標準で入ってい
ます
git ch<tab> --> git checkout
Bash on Ubuntu On Windows(WSL)
• 長い
• Windows 10 RS1から提供
• Windows Subsytem for Linux上で動くUbuntuの環境(ユーザーランド)
• Windowsを使用する開発者にカジュアルにLinux(Ubuntu)での開発環境を提供する物
• Windowsのユーザー環境に
Unixツール環境を提供する機能では無い
Cygwin
• https://www.cygwin.com/
• CygwinはWindows上にPOSIX/LINUXに近い環境を構築する為の環境です
• 注意点はmsys2での注意点とほぼ同じですが、より厳密に注意してください。
• 以前はだいぶ古いバージョンのGitしか使えませんでしたが、今は最新のGit(Ver. 2.7.0)が使えます
(1/23時点)。
• https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fgit-cvs%2Fgit-cvs-2.7.0-
1&grep=git
• Gitの為にCygwinをインストールする必要性は今はないと考えています。
msys2/mingw-w64
• msys2/mingw-w64
• https://github.com/msys2
• msys2はUnixツールとPOSIXとの互換性を持たせるためのライブラリからなる
• mingw-w64はWindows向けgccのツールセット
• Gitのインストールが可能。かつ、Git自体は他のMsys2のアプリケーションと同様基本的にWindowsアプリケー
ションなので普通に使えます。
• Gitとしてのインストーラーがあるわけではないので、Gitの為として使用するにはPATH設定や、コンソール周りの
諸々の設定の知識が必要。
• 基本的にUTF-8なコンソールで使用する分にはあまり大きな問題は起きませんが、Windowsの表順コンソール
の日本語の環境(CP932)で日本語のファイル名を使ったり、コミットメッセージを入力する場合には問題が出る
可能性があります。
• 以上Msys2もGitのためだけにインストールする必要は無いと考えます。
msysGit/Git for Windows(1.9.5以前)
• Git for Windowsの最新版を使えこの野郎。
msysGit、Ver. 1.9.5以前のGit for Windowsは開発中止です。今後セキュリティ的な問題も発生し
かねませんし、ssh等もアップデートされませんので、可能な限り最新の2.x環境に移行してください。
もう使わない。
混ぜるな危険!
• PATHにGit for Windows、msys、msys2、cygwinが混ざるような状況は危険です。
• Ruby InstallerとそのDevKitはmsys2でもなく古いmsysなので、現行のGit for Windowsのbinフォルダ
やmsys2とPATHが混在していると良くありません。それが原因でGemのインストールに失敗して悪態をついてい
る人をTLでたまに見掛けます。Rubyの開発環境のPATHには特にmsys2の各binやGit for Windows
SDKの各binのPATHは通すべきではありません。Gitを使いたい場合にはcmdのみPATHに追加します。
• Ruby, Msys2, Git for Windowsを含んだ通常環境と言った具合にそれぞれ別のPATHを通すようなバッチと
コンソールアプリの組合せで専用の環境(コンソール)を用意しましょう。
• Cygwinを使いたい人は中途半端にGit for WindowsやRuby Installerは使わずに、それらのツールは全て
Cygwinを使うぐらいの気持ちを持ちましょう。PythonやPerl, vim, Emacs等も同様です。
• そんなにWindowsが嫌いならそもそも使わなきゃいいじゃん
GUIツール
Visual Studio Tools for Git
• Microsoft謹製。
• Visual Studio 2013から一応標準Gitでクライアントが付いた
• Git単独のIDE埋め込みクライアントとしてみると・・・
• あくまでもTFSのクライアントだという割り切り。
• Gitの操作にオレオレTFS用語を当てはめるとか
• 心を少し入れ替えて、Update 3でステージングやチェリーピック等の対応が行われた。
• merge時の—no-ffオプション対応して欲しい
• ソリューション全体のツリービューが欲しい
• Visual Studio 2015ではCLIツールのGit for Windowsがインストールされる(オプション)
• リリース時はGit for Windows Version 1.9.5がインストールされる。(メディアに同梱)
• 現在ではネットワーク環境下では比較的新しいバージョンが提供されるようになった。
• Visual Studio 2015ではGitHubクライアントの拡張もインストール出来る
SourceTree
• https://ja.atlassian.com/software/sourcetree/overview/
• Atlassianが公開している無償のGUIツール
• もともとはBitBacketのクライアント的な位置づけでのHgのクライアントだった。
• AtlassianはHgな会社のイメージが強かったのですが、今はすっかりGitの会社ですね(余談)
• Windows版とMac版がある
• Windows/Macでの国内シェアはNo.1なのでは?
• でも私はあんまり好きじゃない。
• Windowsアプリっぽくない
• 自分が共有レポジトリを作ったり、管理する側だっていうのも有る
GitKraken
• http://www.gitkraken.com/
• タコ猫のような異星人ではなくイカ
• GitHub ElectronベースのGUI Gitクライアント
• axosoftが開発している。
• 本業はプロジェクト管理やチーム協業の支援システム(サービス)を提供している会社
• あれ?どっか同じAから始まる会社と似ている。
• SourceTreeの競合?
• Linuxでも動作する
• 軽量(だと思う)
• Git専用なので、こちらの方が無理が無い気がする
TortoiseGit
• https://tortoisegit.org/
• TortoiseSVNと同じような操作感
• Explorerで対象を右クリックして、コマンドを選択
• TortoiseMergeが身についてしまった人にとってはGitでも同様に使える
• WordはWordの比較機能を使ってDiff表示ができる(!)
• Explorer拡張として動作する
• コンテキストメニューでのオブジェクト指向的な操作
• ファイルアイコンの拡張
• WordでDIFFをとる場合にWordの比較機能を使用できる
• 途中からlibgit2を使用するようになり、コマンドラインのgit.exeは必ずしも必要では無い
GitHub Desktop
• GitではなくGitHubのクライアント
• 作業フロー(操作方法や感覚)もGitHubフローに特化している
• Git Flow等他の作業フローでは使いにくいと思う
• GitHubのissue等確認・作成、プルリクエストの作成等できる
• GitHub以外のリモートレポジトリが使えないわけでもないが、使いやすいわけでも無い
• 付属のポータブルGit for Windowsが微妙に古かったり、GitHubのビルドの物だったりで微妙
• 意外とGitHubメインの人でもVSTGと同じような傾向があるので不満があるかも
• あまり深くGitっぽくしないようにGuiの設計をしたり、Guiから発行されるのコマンドを選定していると思う
Visual Studio Code
• MSが提供しているGitHub Electronベースの高機能エディタ(IDEまではいかない)
• Azure Web Appで使われているオンラインのIDEライクなツールであるMonacoをデスクトップで使用できるよう
にした感じのもの
• GitクライアントしてはVisual Studio 2015より機能が高い
• ただし、そのために使うというほどGitの機能が高機能なわけではないので注意
GitExtensions
• 古参のGitのGUIツール
• VS2013までのVSであればVS拡張としても動作
• 内部的にgit.exeをシェル呼び出しするタイプのツール
• コマンドラインに近い操作性(つまり設定項目が多い)
• Explorer拡張としての動作
• 古参故に苦しんでいる感じ
• Git for Windowsのアップデートになかなか追従できていない。
• VS2015に対応できていない。
• 開発が止まっているわけではない。
• http://gitextensions.github.io/
Tower for Windows
• Macでは有名な有償GUIツールのWindowsへの移植が決まり、Beta参加者を募集中。
• で、何時始まるんだろう。
• 歴史もあり、高機能と言われている。
• SourceTreeと違い、Visual StudioやTFS(両方)のサポートを表明している。
• アメリカのGitユーザーの間で非常に期待が高まっているように見受けられるけれども、そもそも国内の
MacユーザーでTowerを使っている人を余り見掛けない(日本語版がないから?)
Git Gui
• git guiコマンドで起動
• Git for Wiundowsに標準で含まれるGUIツール
• なんだかんだこれで済んでしまうことも多い
• どこにでもある安心感
まとめ
で、結局どれを使えばいい?
• コンソール/ターミナルエミュレータを「黒い画面」と恥ずかしくなく言える人
• SourceTree/GitKrakenを使ってください
• 既に作られたGitHubのレポジトリを主に使っている人
• GitHub Desktopを使いましょう
• VSな人はVS拡張で
• OSSのプロジェクトではちょっと考えよう
• 共有レポジトリの作成、運営管理、もしくはプロジェクト/プログラムのリーダー
• 何Guiとか行ってるんですか? Git for Windowsで。
• もちろんGuiツールの併用はあり
• msysGit/Ver. 2.0未満のGit for Windowsは使わない

Weitere ähnliche Inhalte

Was ist angesagt?

Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
pospome
 

Was ist angesagt? (20)

Java仮想マシンの実装技術
Java仮想マシンの実装技術Java仮想マシンの実装技術
Java仮想マシンの実装技術
 
ドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDDドメイン駆動設計 の 実践 Part3 DDD
ドメイン駆動設計 の 実践 Part3 DDD
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
Fantastic DSL in Python
Fantastic DSL in PythonFantastic DSL in Python
Fantastic DSL in Python
 
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
Swagger ではない OpenAPI Specification 3.0 による API サーバー開発
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)Laravel勉強会(データベーステスト編)
Laravel勉強会(データベーステスト編)
 
Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略Webアプリを並行開発する際のマイグレーション戦略
Webアプリを並行開発する際のマイグレーション戦略
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達僕がつくった 70個のうちの48個のWebサービス達
僕がつくった 70個のうちの48個のWebサービス達
 
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
Linuxにて複数のコマンドを並列実行(同時実行数の制限付き)
 
第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編第一回Web技術勉強会 efkスタック編
第一回Web技術勉強会 efkスタック編
 
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
OpenAPI 3.0でmicroserviceのAPI定義を試みてハマった話
 
Lockfree Queue
Lockfree QueueLockfree Queue
Lockfree Queue
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
 
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
 
What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?What's new in Spring Boot 2.6 ?
What's new in Spring Boot 2.6 ?
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
Zynq + Vivado HLS入門
Zynq + Vivado HLS入門Zynq + Vivado HLS入門
Zynq + Vivado HLS入門
 

Andere mochten auch

TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
Etsuji Nakai
 
HTML5 Conference 2013 HybridCast
HTML5 Conference 2013 HybridCastHTML5 Conference 2013 HybridCast
HTML5 Conference 2013 HybridCast
Satoshi Shoda
 
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
tecopark
 

Andere mochten auch (20)

Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)Windows環境でのgitまとめ(2016.1)
Windows環境でのgitまとめ(2016.1)
 
Visual studioとそのライバル
Visual studioとそのライバルVisual studioとそのライバル
Visual studioとそのライバル
 
WindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティスWindowsでGitを使う際のベストプラクティス
WindowsでGitを使う際のベストプラクティス
 
English for programmers
English for programmersEnglish for programmers
English for programmers
 
2016年を振り返って
2016年を振り返って2016年を振り返って
2016年を振り返って
 
BigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL DialectBigQuery勉強会 Standard SQL Dialect
BigQuery勉強会 Standard SQL Dialect
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
a-blog cmsを使うデザイナーのための5つの心得【a-blog cms Training Camp 2016 Autumn】
a-blog cmsを使うデザイナーのための5つの心得【a-blog cms Training Camp 2016 Autumn】a-blog cmsを使うデザイナーのための5つの心得【a-blog cms Training Camp 2016 Autumn】
a-blog cmsを使うデザイナーのための5つの心得【a-blog cms Training Camp 2016 Autumn】
 
TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎TensorFlowプログラミングと分類アルゴリズムの基礎
TensorFlowプログラミングと分類アルゴリズムの基礎
 
HTML5 Conference 2013 HybridCast
HTML5 Conference 2013 HybridCastHTML5 Conference 2013 HybridCast
HTML5 Conference 2013 HybridCast
 
アーキテクチャ主導の情報システムへ
アーキテクチャ主導の情報システムへアーキテクチャ主導の情報システムへ
アーキテクチャ主導の情報システムへ
 
Fitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化についてFitnesse を用いたテストの効率化について
Fitnesse を用いたテストの効率化について
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 
"総務も!!"アジャイルプラクティス!
"総務も!!"アジャイルプラクティス!"総務も!!"アジャイルプラクティス!
"総務も!!"アジャイルプラクティス!
 
KPTAふりかえり体験研修のご紹介
KPTAふりかえり体験研修のご紹介KPTAふりかえり体験研修のご紹介
KPTAふりかえり体験研修のご紹介
 
脚注をめぐる冒険
脚注をめぐる冒険脚注をめぐる冒険
脚注をめぐる冒険
 
Git入門
Git入門Git入門
Git入門
 
デザイン・制作をはじめる前に
取り組む事
デザイン・制作をはじめる前に
取り組む事デザイン・制作をはじめる前に
取り組む事
デザイン・制作をはじめる前に
取り組む事
 
MySQL入門
MySQL入門MySQL入門
MySQL入門
 

Ähnlich wie Windows環境でのgitまとめ(2016.8)

Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
Tadahiro Ishisaka
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
賢次 海老原
 
GameJamでGithubを使おう
GameJamでGithubを使おうGameJamでGithubを使おう
GameJamでGithubを使おう
Ryouta Morita
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
kunimiya
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
Takashi Uemura
 

Ähnlich wie Windows環境でのgitまとめ(2016.8) (20)

Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日Git for windows情報アップデート 2014年10月5日
Git for windows情報アップデート 2014年10月5日
 
gitを1から学ぼう!
gitを1から学ぼう!gitを1から学ぼう!
gitを1から学ぼう!
 
GitHub, the way to simple use. That's it.
GitHub, the way to simple use. That's it.GitHub, the way to simple use. That's it.
GitHub, the way to simple use. That's it.
 
XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用XPages開発におけるGit/GitHubの利用
XPages開発におけるGit/GitHubの利用
 
Gitの紹介
Gitの紹介Gitの紹介
Gitの紹介
 
Git地図
Git地図Git地図
Git地図
 
Git handson
Git handsonGit handson
Git handson
 
【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章【社内輪読会】Github実践入門2章
【社内輪読会】Github実践入門2章
 
Git_GiHub講習会.pdf
Git_GiHub講習会.pdfGit_GiHub講習会.pdf
Git_GiHub講習会.pdf
 
GameJamでGithubを使おう
GameJamでGithubを使おうGameJamでGithubを使おう
GameJamでGithubを使おう
 
第1回Git勉強会
第1回Git勉強会第1回Git勉強会
第1回Git勉強会
 
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
 
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
【Unite 2017 Tokyo】WebGL:ゲームプラットフォームとしてのWebと現在と未来
 
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
もしWordPressユーザーがGitを使ったら 〜WordPressテーマを共同編集しよう〜
 
01.app
01.app01.app
01.app
 
Bot Builder V4 SDK + QnA Maker / LUIS
Bot Builder V4 SDK  + QnA Maker / LUISBot Builder V4 SDK  + QnA Maker / LUIS
Bot Builder V4 SDK + QnA Maker / LUIS
 
Git Flowを運用するために
Git Flowを運用するためにGit Flowを運用するために
Git Flowを運用するために
 
GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)GitLabを16万8千光年ワープさせた話(改)
GitLabを16万8千光年ワープさせた話(改)
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
Cloud Festa 2022 Summer 「UX Ops(Design Ops)、Data Ops、ML Ops、DevOps、GitOpsで実現す...
 

Mehr von Tadahiro Ishisaka

ビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro ormビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro orm
Tadahiro Ishisaka
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
Tadahiro Ishisaka
 
静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価
Tadahiro Ishisaka
 

Mehr von Tadahiro Ishisaka (19)

Windowsでhaskell
WindowsでhaskellWindowsでhaskell
Windowsでhaskell
 
Visual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsiVisual studio 2015 update1 ctpとcsi
Visual studio 2015 update1 ctpとcsi
 
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門関数型・オブジェクト指向宗教戦争に疲れたなたに送るGo言語入門
関数型・オブジェクト指向 宗教戦争に疲れたなたに送るGo言語入門
 
クラウド・コンピューティング サバイバルガイド
クラウド・コンピューティング サバイバルガイドクラウド・コンピューティング サバイバルガイド
クラウド・コンピューティング サバイバルガイド
 
Esentのススメ
EsentのススメEsentのススメ
Esentのススメ
 
ビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro ormビジネス向けアプリケーションにこそ進めるMicro orm
ビジネス向けアプリケーションにこそ進めるMicro orm
 
Jazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょうJazug3周年lt deployブランチを追加してみましょう
Jazug3周年lt deployブランチを追加してみましょう
 
Build insider offline session チームでのgit
Build insider offline session チームでのgitBuild insider offline session チームでのgit
Build insider offline session チームでのgit
 
Hokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.jsHokuriku.net 2013 01-26 node.js
Hokuriku.net 2013 01-26 node.js
 
Web matrix2とvisual studio
Web matrix2とvisual studioWeb matrix2とvisual studio
Web matrix2とvisual studio
 
Sysprep
SysprepSysprep
Sysprep
 
開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
 
Shizudev git hub宿題
Shizudev git hub宿題Shizudev git hub宿題
Shizudev git hub宿題
 
Ossで作成するチーム開発環境
Ossで作成するチーム開発環境Ossで作成するチーム開発環境
Ossで作成するチーム開発環境
 
私はこの本でネットワークを学んだ
私はこの本でネットワークを学んだ私はこの本でネットワークを学んだ
私はこの本でネットワークを学んだ
 
Netduino
NetduinoNetduino
Netduino
 
静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価静岡Developers勉強会 第11回 第12章 遅延評価
静岡Developers勉強会 第11回 第12章 遅延評価
 
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
 
エンジニアを現役で続けて行くには
エンジニアを現役で続けて行くにはエンジニアを現役で続けて行くには
エンジニアを現役で続けて行くには
 

Windows環境でのgitまとめ(2016.8)

  • 2. 自己紹介 • Windows Gitで検索 • 静岡の方から来ました • 最近はやっている仕事がよくわかりません
  • 4. Git for Windows Ver. 2.9.3.2 • 標準的なWindowsでのGitツールセット • https://git-for-windows.github.io/ • Msys2/mingw-w64ベースでの開発 • Gitだけでなく、基本的な動作に必要なPerl, sshのようなMsys2/MinGuのツール、bash、コンソールアプリ (minty)を同梱している。 • GUIセットアップ • 昨年秋ぐらいに中の人がMS社員になったらしいので、きっと開発が安定する。 • msysGit時代を考えたら非常に早いレスポンスで本体のバージョンアップに追従&バグ修正 • 開発はGit for Windows SDKをインストールして行う • 実質的にMsys2/mingw-w64の環境だが、上記の通り若干違いがあるので、混ぜるな危険。
  • 5. Posh-git • https://github.com/dahlbyk/posh-git • Gitツール自体では無い • PowerShell上でGitの操作を補助する • コマンドの補間 • git ch<tab> --> git checkout • プロンプトへのgitの状態表示 • 右図 • PSReadLineとの併用がお勧め • https://github.com/lzybkr/PSReadLine • PSReadLineはWindows 10のPSには標準で入ってい ます git ch<tab> --> git checkout
  • 6. Bash on Ubuntu On Windows(WSL) • 長い • Windows 10 RS1から提供 • Windows Subsytem for Linux上で動くUbuntuの環境(ユーザーランド) • Windowsを使用する開発者にカジュアルにLinux(Ubuntu)での開発環境を提供する物 • Windowsのユーザー環境に Unixツール環境を提供する機能では無い
  • 7. Cygwin • https://www.cygwin.com/ • CygwinはWindows上にPOSIX/LINUXに近い環境を構築する為の環境です • 注意点はmsys2での注意点とほぼ同じですが、より厳密に注意してください。 • 以前はだいぶ古いバージョンのGitしか使えませんでしたが、今は最新のGit(Ver. 2.7.0)が使えます (1/23時点)。 • https://cygwin.com/cgi-bin2/package-cat.cgi?file=x86_64%2Fgit-cvs%2Fgit-cvs-2.7.0- 1&grep=git • Gitの為にCygwinをインストールする必要性は今はないと考えています。
  • 8. msys2/mingw-w64 • msys2/mingw-w64 • https://github.com/msys2 • msys2はUnixツールとPOSIXとの互換性を持たせるためのライブラリからなる • mingw-w64はWindows向けgccのツールセット • Gitのインストールが可能。かつ、Git自体は他のMsys2のアプリケーションと同様基本的にWindowsアプリケー ションなので普通に使えます。 • Gitとしてのインストーラーがあるわけではないので、Gitの為として使用するにはPATH設定や、コンソール周りの 諸々の設定の知識が必要。 • 基本的にUTF-8なコンソールで使用する分にはあまり大きな問題は起きませんが、Windowsの表順コンソール の日本語の環境(CP932)で日本語のファイル名を使ったり、コミットメッセージを入力する場合には問題が出る 可能性があります。 • 以上Msys2もGitのためだけにインストールする必要は無いと考えます。
  • 9. msysGit/Git for Windows(1.9.5以前) • Git for Windowsの最新版を使えこの野郎。 msysGit、Ver. 1.9.5以前のGit for Windowsは開発中止です。今後セキュリティ的な問題も発生し かねませんし、ssh等もアップデートされませんので、可能な限り最新の2.x環境に移行してください。 もう使わない。
  • 10. 混ぜるな危険! • PATHにGit for Windows、msys、msys2、cygwinが混ざるような状況は危険です。 • Ruby InstallerとそのDevKitはmsys2でもなく古いmsysなので、現行のGit for Windowsのbinフォルダ やmsys2とPATHが混在していると良くありません。それが原因でGemのインストールに失敗して悪態をついてい る人をTLでたまに見掛けます。Rubyの開発環境のPATHには特にmsys2の各binやGit for Windows SDKの各binのPATHは通すべきではありません。Gitを使いたい場合にはcmdのみPATHに追加します。 • Ruby, Msys2, Git for Windowsを含んだ通常環境と言った具合にそれぞれ別のPATHを通すようなバッチと コンソールアプリの組合せで専用の環境(コンソール)を用意しましょう。 • Cygwinを使いたい人は中途半端にGit for WindowsやRuby Installerは使わずに、それらのツールは全て Cygwinを使うぐらいの気持ちを持ちましょう。PythonやPerl, vim, Emacs等も同様です。 • そんなにWindowsが嫌いならそもそも使わなきゃいいじゃん
  • 12. Visual Studio Tools for Git • Microsoft謹製。 • Visual Studio 2013から一応標準Gitでクライアントが付いた • Git単独のIDE埋め込みクライアントとしてみると・・・ • あくまでもTFSのクライアントだという割り切り。 • Gitの操作にオレオレTFS用語を当てはめるとか • 心を少し入れ替えて、Update 3でステージングやチェリーピック等の対応が行われた。 • merge時の—no-ffオプション対応して欲しい • ソリューション全体のツリービューが欲しい • Visual Studio 2015ではCLIツールのGit for Windowsがインストールされる(オプション) • リリース時はGit for Windows Version 1.9.5がインストールされる。(メディアに同梱) • 現在ではネットワーク環境下では比較的新しいバージョンが提供されるようになった。 • Visual Studio 2015ではGitHubクライアントの拡張もインストール出来る
  • 13. SourceTree • https://ja.atlassian.com/software/sourcetree/overview/ • Atlassianが公開している無償のGUIツール • もともとはBitBacketのクライアント的な位置づけでのHgのクライアントだった。 • AtlassianはHgな会社のイメージが強かったのですが、今はすっかりGitの会社ですね(余談) • Windows版とMac版がある • Windows/Macでの国内シェアはNo.1なのでは? • でも私はあんまり好きじゃない。 • Windowsアプリっぽくない • 自分が共有レポジトリを作ったり、管理する側だっていうのも有る
  • 14. GitKraken • http://www.gitkraken.com/ • タコ猫のような異星人ではなくイカ • GitHub ElectronベースのGUI Gitクライアント • axosoftが開発している。 • 本業はプロジェクト管理やチーム協業の支援システム(サービス)を提供している会社 • あれ?どっか同じAから始まる会社と似ている。 • SourceTreeの競合? • Linuxでも動作する • 軽量(だと思う) • Git専用なので、こちらの方が無理が無い気がする
  • 15. TortoiseGit • https://tortoisegit.org/ • TortoiseSVNと同じような操作感 • Explorerで対象を右クリックして、コマンドを選択 • TortoiseMergeが身についてしまった人にとってはGitでも同様に使える • WordはWordの比較機能を使ってDiff表示ができる(!) • Explorer拡張として動作する • コンテキストメニューでのオブジェクト指向的な操作 • ファイルアイコンの拡張 • WordでDIFFをとる場合にWordの比較機能を使用できる • 途中からlibgit2を使用するようになり、コマンドラインのgit.exeは必ずしも必要では無い
  • 16. GitHub Desktop • GitではなくGitHubのクライアント • 作業フロー(操作方法や感覚)もGitHubフローに特化している • Git Flow等他の作業フローでは使いにくいと思う • GitHubのissue等確認・作成、プルリクエストの作成等できる • GitHub以外のリモートレポジトリが使えないわけでもないが、使いやすいわけでも無い • 付属のポータブルGit for Windowsが微妙に古かったり、GitHubのビルドの物だったりで微妙 • 意外とGitHubメインの人でもVSTGと同じような傾向があるので不満があるかも • あまり深くGitっぽくしないようにGuiの設計をしたり、Guiから発行されるのコマンドを選定していると思う
  • 17. Visual Studio Code • MSが提供しているGitHub Electronベースの高機能エディタ(IDEまではいかない) • Azure Web Appで使われているオンラインのIDEライクなツールであるMonacoをデスクトップで使用できるよう にした感じのもの • GitクライアントしてはVisual Studio 2015より機能が高い • ただし、そのために使うというほどGitの機能が高機能なわけではないので注意
  • 18. GitExtensions • 古参のGitのGUIツール • VS2013までのVSであればVS拡張としても動作 • 内部的にgit.exeをシェル呼び出しするタイプのツール • コマンドラインに近い操作性(つまり設定項目が多い) • Explorer拡張としての動作 • 古参故に苦しんでいる感じ • Git for Windowsのアップデートになかなか追従できていない。 • VS2015に対応できていない。 • 開発が止まっているわけではない。 • http://gitextensions.github.io/
  • 19. Tower for Windows • Macでは有名な有償GUIツールのWindowsへの移植が決まり、Beta参加者を募集中。 • で、何時始まるんだろう。 • 歴史もあり、高機能と言われている。 • SourceTreeと違い、Visual StudioやTFS(両方)のサポートを表明している。 • アメリカのGitユーザーの間で非常に期待が高まっているように見受けられるけれども、そもそも国内の MacユーザーでTowerを使っている人を余り見掛けない(日本語版がないから?)
  • 20. Git Gui • git guiコマンドで起動 • Git for Wiundowsに標準で含まれるGUIツール • なんだかんだこれで済んでしまうことも多い • どこにでもある安心感
  • 22. で、結局どれを使えばいい? • コンソール/ターミナルエミュレータを「黒い画面」と恥ずかしくなく言える人 • SourceTree/GitKrakenを使ってください • 既に作られたGitHubのレポジトリを主に使っている人 • GitHub Desktopを使いましょう • VSな人はVS拡張で • OSSのプロジェクトではちょっと考えよう • 共有レポジトリの作成、運営管理、もしくはプロジェクト/プログラムのリーダー • 何Guiとか行ってるんですか? Git for Windowsで。 • もちろんGuiツールの併用はあり • msysGit/Ver. 2.0未満のGit for Windowsは使わない