Gitのお勉強
最近、周りからの助言でGitの勉強をやっていまして。
助言と併せて参考になるテキストも提示してもらったので、今はこれを使って学習を進めています。
※宣伝ではない。
先述の通り参考テキストを使って少しずつ学習している最中なわけですが、ここまでで気付いたことと言いますか、知らなかったことやイメージと違っていたことをまとめてみます。
日頃からGitを活用している方々にとっては至極当たり前のことだと思いますが、初めての自分にとってはかなり衝撃な部分だったので、どうか初心者を見守る生暖かい目で眺めて頂けると幸いです。
オフライン環境でも作業ができる
本書の入門部分の解説でも強調されていましたが、ネットワークに繋がっていなくてもリポジトリ内の作業ができるんですね。
この辺はどうしても自分の中ではSubversionのイメージが強いといいますか、集中管理型のシステムだとその管理している中枢(リポジトリ)と通信をしていないといけないわけなので、そもそもオフラインでリポジトリの情報を管理できるのは何度聞いても不思議な感覚です。
コマンドラインの操作が多い
これも意外なことでした。
仕事でSubversionを扱う時にはTortoiseを使うことがほとんどだったので(というかだいたい何処もそんなもんじゃないだろうか)、同じようにGUIで作業することになるものだと思っていました。
しかし自分の思っていたものとは裏腹に、実際にGitを使う場合はかなりのケースでCUIでの作業になるようです。
(これは本書内でも度々強調されているし、周りに聞く限りでも同じ意見でした)
シェルコマンドが度々出てくる
これはコマンドラインの話と重なる部分もありますが、Linuxで使うシェルコマンドが度々使用されます。(cd, lsなど)
そもそもWindowsで使用する場合はGitBashっていう如何にもな名前のアプリで操作しますし、UNIX/Linuxではターミナルから直接コマンド叩いて実行してます。
(自分の手持ち環境ではWinしかないので実際にUNIX/Linuxで操作はできていませんが)
なので、普段からUNIX/Linuxを使用しているかどうかでかなり操作への馴染みは変わってきます。
逆にあまりLinuxを触る機会がない場合(自分のようなケース)でも、Gitを扱うだけで簡単な操作ならいい練習になると思います。
それと、Git用のコマンド(git ●●)もシェルコマンドに準じたコマンド名があります。
(git mv, git rmなど)
今の段階でまだわからないこと
少しずつ学習を進めているわけですが、どうしても今の段階でまだ分かっていない、というより挙動は分かったけど納得できていないこととして、分散型でどのようにマスターを管理しているのか、というところがあります。
確かにそれぞれのローカルにリポジトリを用意してローカル内で作業記録を管理していることは分かったのですが、グループワークとしてどのように管理しているのか、という部分は依然として謎のままです。
1つのファイルに対して複数人で作業をすれば、当然基準となるマスターが必要になると思うわけですが、それをどのようにして実現しているのか...。
まあこの辺はまだ学習自体が途中なので核の部分に自分が触れられていないだけなのかもしれません。
そのうちGitHubの話も出てくるはずですし、今後の楽しみとしておきましょう。
それにしてもどうなってるか全然想像もつかないので、最初にGitの考案をした人は本当にすごいと思いますね。
以上、現段階でのGitで知ったことについてでした。