Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

5,403 views

Published on

独断と偏見によるWindowsでのGit環境のレポート。
1月に富山で発表した内容のアップデートです、

Published in: Software
  • Be the first to comment

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

  1. 1. Windows環境でのGit (2016.8) 石坂忠広(opcdiary.net)
  2. 2. 自己紹介 • Windows Gitで検索 • 静岡の方から来ました • 最近はやっている仕事がよくわかりません
  3. 3. コマンドラインツール
  4. 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. 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. 6. Bash on Ubuntu On Windows(WSL) • 長い • Windows 10 RS1から提供 • Windows Subsytem for Linux上で動くUbuntuの環境(ユーザーランド) • Windowsを使用する開発者にカジュアルにLinux(Ubuntu)での開発環境を提供する物 • Windowsのユーザー環境に Unixツール環境を提供する機能では無い
  7. 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. 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. 9. msysGit/Git for Windows(1.9.5以前) • Git for Windowsの最新版を使えこの野郎。 msysGit、Ver. 1.9.5以前のGit for Windowsは開発中止です。今後セキュリティ的な問題も発生し かねませんし、ssh等もアップデートされませんので、可能な限り最新の2.x環境に移行してください。 もう使わない。
  10. 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が嫌いならそもそも使わなきゃいいじゃん
  11. 11. GUIツール
  12. 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. 13. SourceTree • https://ja.atlassian.com/software/sourcetree/overview/ • Atlassianが公開している無償のGUIツール • もともとはBitBacketのクライアント的な位置づけでのHgのクライアントだった。 • AtlassianはHgな会社のイメージが強かったのですが、今はすっかりGitの会社ですね(余談) • Windows版とMac版がある • Windows/Macでの国内シェアはNo.1なのでは? • でも私はあんまり好きじゃない。 • Windowsアプリっぽくない • 自分が共有レポジトリを作ったり、管理する側だっていうのも有る
  14. 14. GitKraken • http://www.gitkraken.com/ • タコ猫のような異星人ではなくイカ • GitHub ElectronベースのGUI Gitクライアント • axosoftが開発している。 • 本業はプロジェクト管理やチーム協業の支援システム(サービス)を提供している会社 • あれ?どっか同じAから始まる会社と似ている。 • SourceTreeの競合? • Linuxでも動作する • 軽量(だと思う) • Git専用なので、こちらの方が無理が無い気がする
  15. 15. TortoiseGit • https://tortoisegit.org/ • TortoiseSVNと同じような操作感 • Explorerで対象を右クリックして、コマンドを選択 • TortoiseMergeが身についてしまった人にとってはGitでも同様に使える • WordはWordの比較機能を使ってDiff表示ができる(!) • Explorer拡張として動作する • コンテキストメニューでのオブジェクト指向的な操作 • ファイルアイコンの拡張 • WordでDIFFをとる場合にWordの比較機能を使用できる • 途中からlibgit2を使用するようになり、コマンドラインのgit.exeは必ずしも必要では無い
  16. 16. GitHub Desktop • GitではなくGitHubのクライアント • 作業フロー(操作方法や感覚)もGitHubフローに特化している • Git Flow等他の作業フローでは使いにくいと思う • GitHubのissue等確認・作成、プルリクエストの作成等できる • GitHub以外のリモートレポジトリが使えないわけでもないが、使いやすいわけでも無い • 付属のポータブルGit for Windowsが微妙に古かったり、GitHubのビルドの物だったりで微妙 • 意外とGitHubメインの人でもVSTGと同じような傾向があるので不満があるかも • あまり深くGitっぽくしないようにGuiの設計をしたり、Guiから発行されるのコマンドを選定していると思う
  17. 17. Visual Studio Code • MSが提供しているGitHub Electronベースの高機能エディタ(IDEまではいかない) • Azure Web Appで使われているオンラインのIDEライクなツールであるMonacoをデスクトップで使用できるよう にした感じのもの • GitクライアントしてはVisual Studio 2015より機能が高い • ただし、そのために使うというほどGitの機能が高機能なわけではないので注意
  18. 18. GitExtensions • 古参のGitのGUIツール • VS2013までのVSであればVS拡張としても動作 • 内部的にgit.exeをシェル呼び出しするタイプのツール • コマンドラインに近い操作性(つまり設定項目が多い) • Explorer拡張としての動作 • 古参故に苦しんでいる感じ • Git for Windowsのアップデートになかなか追従できていない。 • VS2015に対応できていない。 • 開発が止まっているわけではない。 • http://gitextensions.github.io/
  19. 19. Tower for Windows • Macでは有名な有償GUIツールのWindowsへの移植が決まり、Beta参加者を募集中。 • で、何時始まるんだろう。 • 歴史もあり、高機能と言われている。 • SourceTreeと違い、Visual StudioやTFS(両方)のサポートを表明している。 • アメリカのGitユーザーの間で非常に期待が高まっているように見受けられるけれども、そもそも国内の MacユーザーでTowerを使っている人を余り見掛けない(日本語版がないから?)
  20. 20. Git Gui • git guiコマンドで起動 • Git for Wiundowsに標準で含まれるGUIツール • なんだかんだこれで済んでしまうことも多い • どこにでもある安心感
  21. 21. まとめ
  22. 22. で、結局どれを使えばいい? • コンソール/ターミナルエミュレータを「黒い画面」と恥ずかしくなく言える人 • SourceTree/GitKrakenを使ってください • 既に作られたGitHubのレポジトリを主に使っている人 • GitHub Desktopを使いましょう • VSな人はVS拡張で • OSSのプロジェクトではちょっと考えよう • 共有レポジトリの作成、運営管理、もしくはプロジェクト/プログラムのリーダー • 何Guiとか行ってるんですか? Git for Windowsで。 • もちろんGuiツールの併用はあり • msysGit/Ver. 2.0未満のGit for Windowsは使わない

×