windows環境でのgitまとめ(2016.1)

21
Windows 環環環環 Git (2016.1) 環環環環 (opcdiary.net)

Upload: tadahiro-ishisaka

Post on 15-Apr-2017

11.690 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Windows環境でのgitまとめ(2016.1)

Windows環境でのGit (2016.1)石坂忠広 (opcdiary.net)

Page 2: Windows環境でのgitまとめ(2016.1)

自己紹介

• Windows Gitで検索• 静岡から来ました

• 最近は SI業が忙しいです• 富山県人 (五百石 )と名古屋嬢とのハーフ• 富山でのお仕事が何故か多いです

• どっかのガスの基地のことを聞かれても話せなくなりました

• 冬の富山は鱈が美味しい• 鰤なんか食っている場合じゃない白子食え白子

Page 3: Windows環境でのgitまとめ(2016.1)

コマンドラインツール

Page 4: Windows環境でのgitまとめ(2016.1)

Git for Windows Ver. 2.x• 標準的なWindowsでの Gitツールセット

• https://git-for-windows.github.io/• Msys2/mingw-w64ベースでの開発

• msys2から一部コードが変更されている。ただし、ちゃんと追従されている• Gitだけでなく、基本的な動作に必要な Perl, sshのようなMsys2/MinGuのツール、 bash、コンソールアプリ (minty)を同梱している。

• GUIセットアップ• 昨年秋ぐらいに中の人がMS社員になったらしいので、きっと開発が安定する。

• msysGit時代を考えたら非常に早いレスポンスで本体のバージョンアップに追従&バグ修正• Ver. 2.7.0(2)が最新 (2/3時点 )• 開発は Git for Windows SDKをインストールして行う

• 実質的にMsys2/mingw-w64の環境だが、上記の通り若干違いがあるので、混ぜるな危険。

Page 5: Windows環境でのgitまとめ(2016.1)

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をインストールする必要性は今はないと考えています。

Page 6: Windows環境でのgitまとめ(2016.1)

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のためだけにインストールする必要は無いと考えます。

Page 7: Windows環境でのgitまとめ(2016.1)

Posh-git• https://github.com/dahlbyk/posh-git• Gitツール自体では無い• PowerShell上で Gitの操作を補助する

• コマンドの補間• git ch<tab> --> git checkout

• プロンプトへの gitの状態表示• 右図

• PSReadLineとの併用がお勧め• https://github.com/lzybkr/PSReadLine

git ch<tab> --> git checkout

Page 8: Windows環境でのgitまとめ(2016.1)

msysGit/Git for Windows(1.9.5以前 )• Git for Windowsの最新版をできるだけ使いましょうmsysGit、 Ver. 1.9.5以前の Git for Windowsは開発中止です。今後セキュリティ的な問題も発生しかねませんし、 ssh等もアップデートされませんので、可能な限り最新の2.x環境に移行してください。

もう使わない。

Page 9: Windows環境でのgitまとめ(2016.1)

混ぜるな危険!

• 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等も同様です。

Page 10: Windows環境でのgitまとめ(2016.1)

GUIツール

Page 11: Windows環境でのgitまとめ(2016.1)

Visual Studio Tools for Git• Microsoft 謹製。

• Visual Studio 2013から一応標準 Gitでクライアントが付いた• Git 単独の IDE 埋め込みクライアントとしてみると、ステージングがない、リベース弱すぎ、 —

no-ff オプションでmergeする手段が無い等の不満。

• あくまでも TFSのクライアントだという割り切り。

• 心を少し入れ替えて、ステージングやチェリーピック等の対応を次期バージョンで行うらしい

• Visual Studio 2015では CLIツールの Git for Windowsがインストールされる ( オプション )• リリース時は Git for Windows Version 1.9.5がインストールされる。 (メディアに同梱 )• 現在 (2016/1/23)時点ではネットワーク環境下で Update 1インストール時にインストールされる Git for Windowsのバージョンは Version 2.7.0。最新版が提供されるようになった。

• Visual Studio 2015では GitHub クライアントの拡張もインストール出来る

Page 12: Windows環境でのgitまとめ(2016.1)

SourceTree• https://ja.atlassian.com/software/sourcetree/overview/• Atlassianが公開している無償の GUIツール• もともとは BitBacketのクライアント的な位置づけでの Hgのクライアントだった。

• Atlassianは Hgな会社のイメージが強かったのですが、今はすっかり Gitの会社ですね ( 余談 )

• Windows版とMac版がある• Windows/Macでのシェアは No.1なのでは?

• でも私はあんまり好きじゃない。• Windowsアプリっぽくない

• 自分が共有レポジトリを作ったり、管理する側だっていうのも有る

Page 13: Windows環境でのgitまとめ(2016.1)

GitExtensions• 古参の Gitの GUIツール

• VS2013までの VSであれば VS 拡張としても動作

• 内部的に git.exeをシェル呼び出しするタイプのツール

• コマンドラインに近い操作性 (つまり設定項目が多い )• Explorer 拡張としての動作

• 古参故に苦しんでいる感じ• Git for Windowsのアップデートになかなか追従できていない。• VS2015に対応できていない。• 開発が止まっているわけではない。

• http://gitextensions.github.io/

Page 14: Windows環境でのgitまとめ(2016.1)

TortoiseGit• https://tortoisegit.org/• TortoiseSVNと同じような操作感

• Explorerで対象を右クリックして、コマンドを選択

• TortoiseMergeが身についてしまった人にとっては Gitでも同様に使える• WordはWordの比較機能を使って Diff表示ができる (!)

• Explorer 拡張として動作する• コンテキストメニューでのオブジェクト指向的な操作

• ファイルアイコンの拡張

• Wordで DIFFをとる場合にWordの比較機能を使用できる

• 途中から libgit2を使用するようになり、コマンドラインの git.exeは必ずしも必要では無い

Page 15: Windows環境でのgitまとめ(2016.1)

GitKraken• http://www.gitkraken.com/• タコのような異星人ではなくイカ

• GitHub Electronベースの GUI Git クライアント

• axosoftが開発していて、現状招待制のOpen Betaを公開中 (1/29時点 )• 本業はプロジェクト管理やチーム協業の支援システム ( サービス )を提供している会社

• あれ?どっか同じ Aから始まる会社と似ている。

• SourceTreeの競合 ?• Linuxでも動作する• 軽量 (だと思う )• Git 専用なので、こちらの方が無理が無い気がする

Page 16: Windows環境でのgitまとめ(2016.1)

GitHub Desktop• Gitではなく GitHubのクライアント

• 作業フロー (操作方法や感覚 )も GitHubフローに特化している• Git Flow等他の作業フローでは使いにくいと思う

• GitHubの issue等確認・作成、プルリクエストの作成等できる

• GitHub以外のリモートレポジトリが使えないわけでもないが、使いやすいわけでも無い

• 付属のポータブル Git for Windowsが微妙に古かったり、 GitHubのビルドの物だったりで微妙

• 意外と GitHubメインの人でも VSTGと同じような傾向があるので不満があるかも• あまり深く Gitっぽくしないように Guiの設計をしたり、 Guiから発行されるのコマンドを選定していると思う

Page 17: Windows環境でのgitまとめ(2016.1)

Visual Studio Code• MSが提供している GitHub Electronベースの高機能エディタ( IDEまではいかない)• Azure Web Appで使われているオンラインの IDEライクなツールであるMonacoをデスクトップで使用できるようにした感じのもの

• Git クライアントしては Visual Studio 2015より機能が高い• 何よりステージングのサポートがある

• ただし、そのために使うというほど Gitの機能が高機能なわけではないので注意

Page 18: Windows環境でのgitまとめ(2016.1)

Git Gui• git guiコマンドで起動• Git for Wiundowsに標準で含まれる GUIツール• なんだかんだこれで済んでしまうことも多い

• どこにでもある安心感

Page 19: Windows環境でのgitまとめ(2016.1)

まとめ

Page 20: Windows環境でのgitまとめ(2016.1)

で、結局どれを使えばいい?

• コンソール / ターミナルエミュレータを「黒い画面」と恥ずかしくなく言える人• SourceTree/GitCrakenを使ってください

• 既に作られた GitHubのレポジトリを主に使っている人• GitHub Desktopを使いましょう• VSな人は VS 拡張で

• OSSのプロジェクトではちょっと考えよう

• 共有レポジトリの作成、運営管理、もしくはプロジェクト /プログラムのリーダー• 何 Guiとか行ってるんですか ? Git for Windowsで。• もちろん Guiツールの併用はあり

• msysGit/Ver. 2.0 未満の Git for Windowsは使わない

Page 21: Windows環境でのgitまとめ(2016.1)

Windows 10 Insider Previewな皆様へ

• 1 月 29日 20時時点の情報です。

• 最新の IP(14251)では Git for Windows 2.x以上を使用するとクラッシュします。

• Git for Windows 1.9.5に戻してください。

• GitHub desktop for Windows 付属のポータブル版だと動く場合があるようです。

• どうもクラッシュの原因は cURL(とそのライブラリ )っぽいという話もあり。 (2/3 取り消し線追加 )

• どっちにしろ ntdll.dllの内部エラーなので、 IPの新ビルドが原因です。ドッグフードを食べるとお腹を壊すこともあるという事で。ありがとうございました。• 2/3追記。MS社内ビルドでは改善している模様