ハイパーニートプログラマーへの道

頑張ったり頑張らなかったり

ようやくGitに手を出すよと(SourceTreeで)

一応Githubにアカウントは持っていたものの。
ようやくやってみるかと。

ほんとうにサルでも分かるんだな? ほほう・・・。

Gitを使ったバージョン管理【Gitの基本】 | サルでもわかるGit入門 〜バージョン管理を使いこなそう〜 | どこでもプロジェクト管理バックログ

SourceTreeのインストール on Mac

んー、コマンドラインでもいいんだけど、SourceTreeを使ってみようではないか。

Free Mercurial and Git Client for Windows and Mac | Atlassian SourceTree

ダウンロードしたファイルを開き、アプリケーションフォルダへ突っ込む。

で、SourceTreeでの登録。
Githubアカウント使えると(当たり前か)。

f:id:noriyo_tcp:20140623160601p:plain

first cloneしようず!みたいなダイアログがでまして、その中に以前自分が作った(作ってたんだ!)リポが入っていたので、それを選択。クローン先は同名のディレクトリを作りました。リポジトリの中味が全部クローンされてくると。

f:id:noriyo_tcp:20140623160622p:plain

f:id:noriyo_tcp:20140623160949p:plain

*改めて見ると中味が無い。ほんとにリポだけ作って放っといておいたようだ。

Git - Git リポジトリの取得

チュートリアルでは新規作成の手順に行くのですが、クローンしちまったい。まあなんとかしよう。
ブックマークするんだな? 「ファイル」から「開いているリポジトリをブックマーク」・・・見た目には何も変わらんがw

f:id:noriyo_tcp:20140623160834p:plain

⌘+Bでブックマーク表示
登録されているようです。

f:id:noriyo_tcp:20140623160912p:plain

Git/Testディレクトリの中に(ここがワーキングツリーになるんだな?)sample.txtを作ってみる。
ブックマークから今作業しているディレクトリをダブルクリックすると操作画面へ。
作業ツリーのファイルに先ほどのsample.txtがあるので、チェックを入れると・・・、インデックスステージへ移行と。

f:id:noriyo_tcp:20140623161303p:plain

コミットメッセージを入力してコミットボタンを押す。 (⌘+Shift+Cでコミット)

f:id:noriyo_tcp:20140623161708p:plain

ブランチのmasterを選択すると、コミット内容が表示される。

f:id:noriyo_tcp:20140623161723p:plain

ファイルの変更内容を記録するのがコミットで、それをリモートに反映させるのがプッシュ、でおk?
要は「差分」が肝なんだな。それを変更履歴に時系列に記録していくことによって、バージョンをさかのぼることができるわけだ。


いや違うかも(汗

Git - ブランチとは

Git はチェンジセットや差分としてデータを保持しているのではありません。そうではなく、スナップショットとして保持しています。

差分じゃない・・・・・・のか?


あ、これまだローカルでごにょごにょしてるだけなのか。
今のところ共同作業はないので、mergeの方法とかですかな。

Gitのユーザーネームの変更

SourceTreeでの初期設定の際、はたと思い出したのが、以前WindowsでもGit設定していたんだった。全然使ってなかったけどw
というわけでWindowsでのGitの設定を確認。
コマンドプロンプト

git config --list

なんかuser_nameがGithubでのそれと違うぞ(汗)、何せずいぶん前なのでよくわからんが、Githubでの名前と合わせる。

git config --global user.name 'new_username'

参考:
Githubのユーザー名を変更してみた | danimal141.net

Githubのhelp:
Setting your username in Git · GitHub Help

まあ特定のでなくて全リポジトリでの名前変更にしておけば良かろう(適当)

以下覚え書き。もうGitに慣れてる方にはつまらん内容とです。


ファイルの更新履歴が残っていくので、管理するのに便利。

リポジトリ

リポジトリとは、ファイルやディレクトリの状態を記録する場所。保存された状態は、内容の変更履歴として格納されている。変更履歴を管理したいディレクトリをリポジトリの管理下に置くことで、そのディレクトリ内のファイルやディレクトリの変更履歴を記録することができる。
リポジトリに突っ込んでおくと。

リモートリポジトリ
専用のサーバに配置して複数人で共有するためのリポジトリ
ローカルリポジトリ
ユーザ一人ひとりが利用するために、自分の手元のマシン上に配置するリポジトリ

普段はローカルで作業しておいて、変更内容をリモートにpushするというわけだな。逆にリポジトリの内容をローカルにpullすると。
ローカルリポジトリを作成するには、
1.新たにリポジトリを作成。
2.リモートリポジトリをコピーしてくる。

コミット

ファイルやディレクトリの追加・変更を、リポジトリに記録するにはコミット。

コミットを実行すると、リポジトリ内で、前回コミットした時の状態から現在の状態までの差分を記録したコミット(またはリビジョン)と呼ばれるものが作成されます。
差分が作られて、それが履歴になっているのだな。

バグ修正や機能追加などはできるだけ分けてコミットする、後で変更内容を特定しやすい。

コメント:
1.変更内容の要約
2.空行
3.変更理由

ワークツリーとインデックス

手元で実際に作業しているディレクトリのことをワークツリーという。(ワーキングディレクトリみたいなもんか)
そことリポジトリの間にはインデックスが存在する。インデックスは、リポジトリにcommitする準備をする場所。インデックスに登録されていないファイルはリポジトリにコミットされない。
直接リポジトリにコミットされないんだな。

インデックスを間に挟むことで、ワークツリー内の必要ないファイルを含めずにコミットを行ったり、ファイルの一部の変更だけをインデックスに登録してコミットすることができる。