ページ

ラベル git の投稿を表示しています。 すべての投稿を表示
ラベル git の投稿を表示しています。 すべての投稿を表示

2009年11月23日月曜日

git - タグ付けの覚え書き

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

git のタグ付けを試行錯誤。ようやく感じがつかめた。今後はサンプルを作ったらコミット&タグ打ちして、そのタグのついた github の URL を掲載すれば良いことがわかった。


(1) ファイル TEST.1 を追加

$ touch TEST.1
$ git add TEST.1
$ git commit -m "add"
[master a890359] add
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 TEST.1
$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 233 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
97ceb55..a890359  master -> master
$ 

結果:
master: TEST.1


(2) タグ TAG.1 を追加

$ git tag TAG.1
$ git push origin TAG.1
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
* [new tag]         TAG.1 -> TAG.1

結果:
master: TEST.1
TAG.1 : TEST.1


(3)ファイル TEST.2 を追加し、TAG.2 を追加

$ touch TEST.2
$ git add TEST.1
$ git commit -m "add"
[master 375f883] add2
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 TEST.2
$ git tag TAG.2
$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 225 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
a890359..375f883  master -> master
$ git push origin TAG.2
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
* [new tag]         TAG.2 -> TAG.2

結果:
master: TEST.1, TEST.2
TAG.1 : TEST.1
TAG.2 : TEST.1, TEST.2


(4) ファイル TEST.3 を追加し、TAG.3 を追加

ただし master は push しない

$ touch TEST.3
$ git add TEST.3
$ git commit -m "add3"
[master a6aa0b7] add3
0 files changed, 0 insertions(+), 0 deletions(-)
create mode 100644 TEST.3
$ git tag TAG.3
$ git push origin TAG.3
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 227 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
* [new tag]         TAG.3 -> TAG.3

結果:
master: TEST.1, TEST.2
TAG.1 : TEST.1
TAG.2 : TEST.1, TEST.2
TAG.3 : TEST.1, TEST.2, TAG.3

master を push する

$ git push origin master
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
375f883..a6aa0b7  master -> master

結果:
master: TEST.1, TEST.2, TEST.3
TAG.1 : TEST.1
TAG.2 : TEST.1, TEST.2
TAG.3 : TEST.1, TEST.2, TEST.3


(5) ファイル TEST.2 を削除し、TAG.4 を追加

$ rm TEST.2  <
$ git rm TEST.2
rm 'TEST.2'
$ git commit -m "del"
[master 52fa1fb] del
 0 files changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 TEST.2
$ git push origin master
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (2/2), 220 bytes, done.
Total 2 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
   a6aa0b7..52fa1fb  master -> master
$ git tag TAG.4
$ git push origin TAG.4
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:xcatsan/sandbox.git
* [new tag]         TAG.4 -> TAG.4

結果:
master: TEST.1, , TEST.3
TAG.1 : TEST.1
TAG.2 : TEST.1, TEST.2
TAG.3 : TEST.1, TEST.2, TEST.3
TAG.4 : TEST.1, , TEST.3


トラブル集

git rm やらずにコミット

# On branch master
# Changed but not updated:
# (use "git add/rm ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# deleted: TEST.2
#
no changes added to commit (use "git add" and/or "git commit -a")


 タグが無いのにpush
$ git push origin TAG.4
error: src refspec TAG.4 does not match any.
error: failed to push some refs to 'git@github.com:xcatsan/sandbox.git'




参考情報・その他

Pro Git - Pro Git 2.6 Git の基本 タグ

実例:
xcatsan's sandbox at master - GitHub

2009年11月3日火曜日

github を使う

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

github

github にアカウントを作成した。




xcatsan's Profile - GitHub

サンプルのソースコードは今後ここへおいていくことにする。


git

git はここから入手した(v1.6.5.2)。


Git - Fast Version Control System

ダウンロードしたら適当な場所で展開し、make と make install を実行するだけ。~/bin/ 配下にインストールされるのでパスを通しておく。
(例).bash_profile 内の PATH設定へ追加する

  export PATH=$PATH:~/bin

git をインストールしたら、github で画面上の指示に従いリポジトリを作成する。

SSHの鍵まわりは下記に注意する。

秘密鍵ファイルのパーミッション
=> 600 にしておく。
$ cd ~/.ssh
$ chmod 600 github.xcatsan.mac.com.key
$ ls -l github.xcatsan.mac.com.key

秘密鍵ファイルの名前を変えた場合
=> ~/.ssh/config にホスト名と紐づけておく。
~/.ssh/config へ下記を追加。
Host github.com
IdentityFile ~/.ssh/github.xcatsan.mac.com.key



Xcode で使う

xcode 自体は git をサポートしていない。この為、コマンドラインで使うか別の GUIツールなどを使う。

(参考)
Can git be integrated with Xcode? - Stack Overflow


Xcode のプロジェクトではリポジトリに入れる必要の無いファイルが多数あるため、.gitignore へそれらを記述しておく。

(参考)


上記から引用するとこんな感じ。
# xcode noise
build/*
*.pbxuser
*.mode1v3

# old skool
.svn

# osx noise
.DS_Store
profile
これを .gitignore というファイルに書いて、リポジトリディレクトリへ入れておく。


HelloWorld

試しに Xcode で新規にプロジェクトを作り github へ入れてみる。

Xcode で SampleCode/ 内に HelloWorld という Cocoa Application プロジェクトを新規作成する。
$ cd SampleCode
$ ls
HelloWorld

リポジトリへ追加する。
$ git add HelloWorld

status で状況が確認できる。
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
# new file:   HelloWorld/English.lproj/InfoPlist.strings
# new file:   HelloWorld/English.lproj/MainMenu.xib
# new file:   HelloWorld/HelloWorld.xcodeproj/TemplateIcon.icns
# new file:   HelloWorld/HelloWorld.xcodeproj/project.pbxproj
# new file:   HelloWorld/HelloWorld_Prefix.pch
# new file:   HelloWorld/Info.plist
           :
           :

追加されたファイルの一覧が表示される。

ローカルのリポジトリへコミットする。
$ git commit
$ git commit
[master a4ae7fb] test
 31 files changed, 3111 insertions(+), 0 deletions(-)
 create mode 100644 HelloWorld/English.lproj/InfoPlist.strings
 create mode 100644 HelloWorld/English.lproj/MainMenu.xib
    :
    :

リモート(github)へ反映する。
$ git push
$ git push
Counting objects: 49, done.
Compressing objects: 100% (40/40), done.
Writing objects: 100% (48/48), 2.07 MiB | 882 KiB/s, done.
Total 48 (delta 7), reused 0 (delta 0)
To git@github.com:xcatsan/SampleCode.git
   d7c0313..a4ae7fb  master -> master

これで github に出てくるようになる。


中を見ると buildディレクトリが入っていた。.gitignore が働いていない?

別のサイトを調べてみた。

Git ignore file for Xcode projects - Stack Overflow

.DS_Store
*.swp
*~.nib

build/

*.pbxuser
*.perspective
*.perspectivev3
*.mode1v3
*.mode2v3

.gitignore の内容を上記で差し替えて新しいプロジェクトで試す。

$ ls
HelloWorld Helloworld2 README
$ ls -F Helloworld2/
English.lproj/  Helloworld2_Prefix.pch build/
Helloworld2.xcodeproj/ Info.plist  main.m
$ git add -A
$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD ..." to unstage)
#
# new file:   Helloworld2/English.lproj/InfoPlist.strings
# new file:   Helloworld2/English.lproj/MainMenu.xib
# new file:   Helloworld2/Helloworld2.xcodeproj/TemplateIcon.icns
# new file:   Helloworld2/Helloworld2.xcodeproj/project.pbxproj
# new file:   Helloworld2/Helloworld2_Prefix.pch
# new file:   Helloworld2/Info.plist
# new file:   Helloworld2/main.m
#
今度は build が無視されているようだ。その他、登録ファイルも前回に比べ少ない。

github へ push する。
$ git push
Counting objects: 8, done.
Compressing objects: 100% (7/7), done.
Writing objects: 100% (7/7), 2.87 KiB, done.
Total 7 (delta 1), reused 0 (delta 0)
To git@github.com:xcatsan/SampleCode.git
   d697ca1..1a868dd  master -> master
$

github でも build ディレクトリが無いことが確認できた。良さそうだ。





git の使い方は Git入門 - トップページ が参考になった。



GitX

GUIツールを入れてみた。




なかなか良さそうだ。