ゼロから始めるGit(分散型バージョン管理)ライフ 1

Gitを使うべし!

形象バージョン管理アプリの中で、一番優秀だと思われるのは断然Gitと言える。Gitは次のような特徴が長所と思われている。

  1. ファイルごとに変更内容を追跡し、ステージ後、コミット、プッシュ過程を通してアップロードができる。
  2. 中央サーバー中心ではない。分散セーブをする。
    • Gitは確かリモートサーバーという概念を持ってるが、サーバーにつながらなくてもローカルコミットまではできる。SVNはリモートサーバーと繋がらなければ、一切のコミットができない。
    • ローカルに貯めていたコミットを一気にプッシュすることでサーバーと無事に同期化もできる。
  3. ほとんどの場合、コンフリクトの解消は簡単にできる。
  4. ソース保管と複製に利用できる。
    • Githubはgitを活用した代表的な公開サービスであって、ここにPublicとしてアップすることで、誰でもクローンができる。
    • GitをCloneすれば、レポジトリーの歴史と内容のすべてがコピーされて、サーバーの有無と関係なく、再アップロードして歴史を続けられる。
  5. コミットの容量が小さいし、いつでもアンドゥしたり、他のコミットをチェックアウトできる。
    • Branchを分岐して、人あるいは機能ごとに分けることができる。完成されていない作業中の機能も柔軟にセーブできる。
    • 新しい機能が問題の原因となった場合、過去のコミットに戻ることも、他のブランチに変えることもできる。
    • Checkoutをすると、ローカルのファイルはすべて変わってしまうが、たとしてコミットした既存のファイルがどこか消えるのではない。プロジェクトフォルダの内容をまるでテンポラリーファイルのように変えられる。

一方、形象管理を経験していない人なら、「グーグルドライブやラインで送ればいいじゃん」と思うかもしれない。これは次のような理由で避けた方が進められる。

  1. 同じか似ているファイルが複数存在するようになる。
    (マスター.zip, マスター.zip (1), マスター-最終.zipが積み重なるような…)
  2. プロジェクトファイル全体を圧縮して、コピー(アップロード/ダウンロード), 解凍する過程で時間の無駄遣いと手間がかかる。
  3. 常に何を変更したか分からない。
  4. 前はできた機能が壊れた場合、その原因を探るのはとても難しい。
  5. 誰かが動かないと言っても、その人のファイルが最新かどうかわからない。

Gitを使うためのそろいもの

Windows環境でGitを使うには予め大きく二つの気にすることがある。

  • クライアント側
    • Gitをコマンドで使うか?
      • Gitバイナリーは確かコマンドプロンプトやbashなどで使われるCLIアプリであり、使いにくいが、GUIにない機能を使うためには必須である。
      • 一部のGUI Gitは別途のバイナリーが要るが、大体にGUIのみ使っている場合ならそのアプリの以外にGitをまたインストールする必要はない。しかし、上記の理由でコマンドの必要性はあるので、両方あって損することもない。
    • Gitを便利に使えるGUIを選ぼう。
      • SourceTreeは地域化が進められていて、日本語バージョンもある。しかし、機能では惜しいところもある。
      • GitKrakenはこのシリーズで紹介するアプリであり、豊富な機能と優れている視覚化が特徴だ。しかし、英語のみサポートされている。
      • TortoiseGitはエクスプローラーのメニューの中にあり、連携に優れているが、機能と直感性は劣っている。
      • eclipseのeGit, Visual Studioのgitなど、IDEに含まれているプラグインも活用できる。しかし、本の最小の機能しかないので、gitに対する誤解を招くこともあり、コンフリクトなどの問題解決が非常に難しいか、不可能な場合もある。
  • サーバー側
    • 誰でもgitバイナリーを使い、git serverの設定ができる。
    • githubとbitbucketのようなウェブgitが使える。
      • github: Publicの場合無料。Privateは一人に7ドルの費用。
      • bitbucket: Public無料。Privateも5人内なら無料。
    • Synology NASにgitを設定して、SSHプロトコルで使用できる。

Git for Windows ダウンロード

Linuxの環境では、基本的な構成されることが多いし、(Ubuntu等)、必要なら単純な命令でインストールできる。

Linux Git ダウングレード

Gitをパソコンで設定

GUIのみの方には必要ないかもしれないが、gitコマンドを使うには事前設定が必要だ。

まず、上記のリンクからファイルのダウンロードを行い、インストールを済ませる。PATH設定が適用されるには、現在のコマンドプロンプトをすべて終了し、必要な時はシステム再起動もする。

次のようなメッセージが表示されたら、PATHが間違っていることである。

> git
'git' is not recognized as an internal or external command,
operable program or batch file.

下の結果が成功である。

> git
usage: git [--version] [--help] [-C ] [-c name=value]
           [--exec-path[=]] [--html-path] [--man-path] [--info-path]
           [-p | --paginate | --no-pager] [--no-replace-objects] [--bare]
           [--git-dir=] [--work-tree=] [--namespace=]
            []

These are common Git commands used in various situations:

start a working area (see also: git help tutorial)
   clone      Clone a repository into a new directory
   init       Create an empty Git repository or reinitialize an existing one

work on the current change (see also: git help everyday)
   add        Add file contents to the index
   mv         Move or rename a file, a directory, or a symlink
   reset      Reset current HEAD to the specified state
   rm         Remove files from the working tree and from the index

examine the history and state (see also: git help revisions)
   bisect     Use binary search to find the commit that introduced a bug
   grep       Print lines matching a pattern
   log        Show commit logs
   show       Show various types of objects
   status     Show the working tree status

grow, mark and tweak your common history
   branch     List, create, or delete branches
   checkout   Switch branches or restore working tree files
   commit     Record changes to the repository
   diff       Show changes between commits, commit and working tree, etc
   merge      Join two or more development histories together
   rebase     Reapply commits on top of another base tip
   tag        Create, list, delete or verify a tag object signed with GPG

collaborate (see also: git help workflows)
   fetch      Download objects and refs from another repository
   pull       Fetch from and integrate with another repository or a local branch
   push       Update remote refs along with associated objects

'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help ' or 'git help '
to read about a specific subcommand or concept.

これから、基本ユーザー設定をしてみよう。次のコマンドがあれば、git commitのたびに、ユーザー設定が自動でできる。

> git config --global user.name "My Name"
> git config --global user.email [email protected]

一度使ってみたらはまるGitKraken

つづく…

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です