Gitを再認識する為に始めました
まずはレベル1から
Gitはバージョン管理システムです
現場ではSubversionを使っていますが…(;・∀・)
自分のお仕事ではGitを使っています。
ぶっちゃけ一人開発なので、Subversionでもよいのですがwww
SubversionとGitとどう違うのでしょうか?
Subversionは集中型バージョン管理システムです。
一方、Gitは分散型バージョン管理システムです。
現場ではSubversionでコミットするとJenkinsが動きます
Subversionでのcommit = 納品という認識です
しかし!うっかりcommitが頻繁に発生します(Subversionのせいではないw
んじゃ、ブランチきればいいじゃーんヘ(^o^)ノ
Subversionは集中型バージョン管理システムです…
ブランチをきるさきはローカルではなくネットワーク先になります
この時点で僕はムリですが…
Subversionをあまり理解していませんので、つっこみ大歓迎です
Gitは分散型なので、ローカルにブランチを切り放題のやっぱやーめたやり放題w
RubyはSubversionで管理されていますが、mrubyはGitで管理されGitHubにて公開されています
GitHubの登場がGitの地位をここまで押し上げたと言っても良いでしょう(ほんまかいなw
そのうち、GitHubについてもブログ書きますよ( ー`дー´)キリッ
MacならGitはデフォルトでインストールされています(10.9以降
10.8以前のバージョンではXcodeのcommand line tool?をインストールすればよろし
今回は基本的なコマンドをご紹介
$ mkdir murajun1978
$ cd murajun1978
$ git init
$ ls -a
. .. .git
git initでローカルにリポジトリを作成しています
.gitがリポジトリ
試しにファイルを作成してみましょ
$ echo 'Hello, Git!' >> hello.txt
$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# hello.txt
Untracked filesはgitで管理されてないよーってこと(ワーキングツリー
$ git add hello.txt
$ git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached ..." to unstage)
#
# new file: hello.txt
git addしたことでGitの管理下に(ステージへ移動
$ git commit -m "init commit"
$ git status
# On branch master
nothing to commit, working directory clean
git commitしたことでステージからいなくなった(リポジトリへ移動
$ git log
commit [ハッシュ]
Subversionではコミット番号で管理してるけど、Gitは分散型なので一意な文字列ハッシュを使って管理してるのね
$ git show HEAD
Date: Tue Nov 19 00:24:21 2013 +0900
init commit
diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..670a245
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello, Git!
git showでリポジトリの状態を見ることができる
$ echo 'Lets try Git' >> hello.txt
$ git status
# On branch master
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: hello.txt
#
$ git diff
diff --git a/hello.txt b/hello.txt
index 670a245..edaa8ae 100644
--- a/hello.txt
+++ b/hello.txt
@@ -1 +1,2 @@
Hello, Git!
+Lets try Git
git diffで変更内容を見ることができます
間違えたのでこの修正を取り消してみましょう
$ git checkout -- hello.txt
$ git status
# On branch master
nothing to commit, working directory clean
もとに戻りましたねー
また書きます
( ̄(エ) ̄)彡☆