Git / GitHubの使い方 - 手元での管理

これは筆者の裁量でバンバン中身を削っているものなので、しっかりとgitの基礎を身に着けたい人はGit - Bookを参照してください。

また、このチュートリアルは、CLIを使って操作することを念頭に置き書かれています。 コマンドラインツールが使えなかったり、まだ馴染んでいないと感じる人はSourceTreeなどのソフトウェアを使いましょう。
プログラミング関連の様々なことに共通することですが、新しいツールを利用するときに苦手意識を持たないことが大切です。

Gitってなんぞや?

分散型バージョン管理ツールのことです。
なぜ分散させてバージョン管理したいかというと、たまにプログラムを書いているときに間違って消滅させたり、破壊的な変更を加えてしまうからです。 人間は誰でも大抵ミスをするので、うまく管理していくのが大切です。課題も、成績も...

実際にバージョン管理ツールが役に立つと想定される例:

AliceとBobは電脳たこやきについてのレポートを書いていましたが、Charlieが来て、電脳いかやきという文言をランダムに混入させてしまいました。 Charlieが去ったのち、バージョン管理ツールがあれば、レポートを書く対象である電脳いかやきを削除できますが、バージョン管理ツールがない場合は一つひとつ手作業で探す・プログラムで探索するなどの行為が必要になります。

実際に様々なものが破壊されたり破滅したりするので、適当に置き換えて想像してみてください。例え悪意がなくとも徹夜明けでデータを吹き飛ばしたり、うっかりミスでデータを吹き飛ばしたり、pythonを消すことでOSが起動不可になるなどのケースがありえます。いまはわからなくとも、データを吹き飛ばしたり誤ってデータを消すなどの行為を通じて、分散の必要性、バージョン管理の必要性が分かってくると思います。


Gitの使い方 - ローカルリポジトリ

手順

いま、あるディレクトリ直下にいるとしましょう。 ここでgitによるバージョン管理を始めるには、このコマンドを打ちます。

git init

すると、このような出力が返ってくるはずです。

Initialized empty Git repository in (任意の文字列)

しかし、このコマンドを打ったことでgitがすべてのファイルを管理し始めるわけではありません。
私たちがgitをこのディレクトリ内で使うと宣言した上で、どのファイルを管理するかを明示的に教えてあげる必要があるのです。

gitに管理してほしいファイルを指示するには、以下のコマンドを使います。

git add (ファイル名)

しかし、このコマンドだけではgitによって記録される対象とはなりません。
gitその時々のファイルの状態を管理するツールです。
それはつまり、いちいちファイルを足したり引いたり消したり……などの履歴をすべて記録するものではないということです。 実際には、ファイル変更のきりが良さそうなところでgitにバージョンの記録をお願いすることになります。

バージョン記録のためのコマンドが以下のものです。

git commit -m (コミットログ)

コミットログは、今回記録されるファイルでの変更点などを記すメッセージです。 後の自分や今後他者の目に触れることを意識しつつ、意図がわかりやすいように簡潔に記しましょう。

わざわざgitがこのような婉曲したアプローチを採るのはなぜでしょうか。 それはブランチの概念に触れたときに明らかになります。


まとめ

いままでの流れをまとめてみましょう。

  1. 現在のディレクトリでgitによる管理をはじめます。
git init
  1. いくつかのファイルをgitの管理対象にしましょう。
git add (some files)
  1. いまの状態を記録しましょう。必ずメッセージを書く必要があります。
git commit -m (message)

このような感じでバージョンを管理することができます。良かったですね。


ファイルの削除など

では、以下にgit管理からの削除方法とファイル一覧取得方法を記しておきます。

  • addだけしたファイルを管理から外したい場合
git rm (ファイル名)
  • 一度でもcommitしたことがあるファイルを管理から外したい場合
git rm --cached (ファイル名)
  • gitで管理されているファイルの一覧を取得したい場合
git ls-files

これらは概略であり、もっとたくさんのオプションとたくさんの操作が存在します。

詳しくは

man git

で調べてみてください。

manコマンドはmanualの略で、様々なコマンドの使用例に深く立ち入って学ぶことができます。 gitコマンド以外でもman (command)で検索してみましょう。

最後に

ここまでの流れの詳細については、Gitの基本を参照してください。 中ほどの図において、それぞれgit addがステージング、git commitがコミットに対応します。

つづきはGit / GitHub の使い方 - リモートについて

results matching ""

    No results matching ""