2013年11月19日火曜日

Git入門 レベル1ヘ(^o^)ノ

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

もとに戻りましたねー

また書きます

( ̄(エ) ̄)彡☆

0 件のコメント:

コメントを投稿