はてなブログに移行しました
これです。アジャイルSEの憂鬱 http://sinsoku.hatenablog.com/
gitの勉強会をしてきた #gitbattle
4/20(土)にgitの勉強会をやってました。
イベントのページ
Git天空闘技場 - connpass
http://connpass.com/event/1958/
経緯とか
元々、Gitの内部構造を軸とした勉強会をやってみたくて、↓みたいな事を考えてた。
- 常に無名ブランチで作業(ブランチとか初心者には要らない) - リポジトリ内部を1コミットごとに調べる - ブランチ、タグの実体を知る - リモートの実体を知る - オブジェクトを理解する - 初心者向けの勉強会だけど、初心者をgitの深淵に突き落とす
で、3月くらいに[twitter:@skowata]さんと話してたら「じゃあ、やろう」と。
最初は少人数でもいいかなぁと思っていたけど、意外と人が集まったw
ちなみに、天空闘技場の元ネタはHUNTERxHUNTER。
「Gitの基礎をぶつけられて、念能力git力が目覚める」的な。
リリカルハッカソンでDVCS(veracity, fossil)を触ってみた 3 #nanohack
veracityでプロジェクトを作ってみた。
参考ページ
I've installed Veracity. How do I get started using it? - Veracity Q&A http://veracity-scm.com/qa/questions/53/ive-installed-veracity-how-do-i-get-started-using-it
コマンド簡易まとめ
コマンド | 説明 | エイリアス |
---|---|---|
vv help command | ヘルプを表示 | |
vv init | リポジトリを作り、作業ディレクトリを初期化する | |
vv whoami | 現在のユーザを表示・設定する | |
vv add file-or-folder | ファイルを版管理の対象に追加 | |
vv remove file-or-folder | ファイルを版管理の対象から削除 | |
vv status | 作業ディレクトリの状態を表示する | |
vv commit | 変更をリポジトリにコミットする | |
vv revert 戻したいファイルのpath | 変更を戻す | |
vv repo list | リポジトリの一覧を表示する | |
vv rename old_name new_name | ||
vv diff | 変更差分を表示する | |
vv history | ログを表示する |
ちなみに、veracityは[TAB]でコマンドの補完が効いた。
プロジェクトの作成
mkdir lyrical_tokyo cd lyrical_tokyo vv init lyrical_tokyo .
ユーザの設定
$ vv whoami --create sinsoku_listy[at]gmail.com
ファイルを追加する
$ touch README $ vv status Found: @/README $ vv add README 1 added
変更をコミットする
$ vv commit -m "add README" revision: 2:bc67e711d9acbe3e9e7b87fcb79d62828b673d56 branch: master who: sinsoku_listy[at]gmail.com when: 2013/04/13 17:46:22.955 +0900 comment: add README parent: 1:08fae75af4ed7b230c3d29e34c175649a84a1416
リリカルハッカソンでDVCS(veracity, fossil)を触ってみた 2 #nanohack
fossil でプロジェクトを作ってみた
参考ページ
Fossil: Fossil Quick Start Guide http://www.fossil-scm.org/fossil/doc/trunk/www/quickstart.wiki
コマンド簡易まとめ
コマンド | 説明 | エイリアス | ||
---|---|---|---|---|
fossil help | コマンド一覧を表示 | |||
fossil help command | コマンドのヘルプを表示 | fossil command --help | ||
fossil init repository-filename | リポジトリの作成 | fossil new | ||
fossil open repository-filename | ローカルのリポジトリから作業ディレクトリを作成 | |||
fossil set editor editor-name | コミットログを書くエディタを設定 | |||
fossil add file... | ファイルを版管理の対象に追加 | |||
fossil rm file... | ファイルを版管理の対象から削除 | |||
fossil ls | 版管理されているファイルの一覧を表示 | |||
fossil commit | ファイルをコミットする | |||
fossil ui | web severを起動する | fossil server*1 | ||
fossil changes | 版管理されているファイルの状態(ADDED, EDITED, DELETED)を表示 | |||
fossil status | 現在のVERSIONの状態を表示 | |||
fossil info | 現在のVERSIONの詳細な状態を表示 | |||
fossil revert file... | ファイルの変更を取り消す | |||
fossil diff file... | ファイルのdiffを表示 | |||
fossil timeline | ログを表示する | |||
fossil undo | 特定のコマンド*2の操作をundoする | fossil redo | fossil undo の操作をredoする |
ちなみに[TAB]でのコマンドの補完が効かないので、結構不便
新しいリポジトリを作成する
$ mkdir repos $ fossil init repos/lyrical_tokyo.fossil
リポジトリをcloneして、作業ディレクトリを作成する
$ mkdir lyrical_tokyo $ cd lyrical_tokyo $ fossil open ../repos/lyrical_tokyo.fossil
editorを設定する
$ fossil set editor vim
ファイルをコミットする
$ touch README $ fossil add README $ fossil commit
リリカルハッカソンでDVCS(veracity, fossil)を触ってみた 1 #nanohack
fossil の特徴
veracity の特徴
試した環境と各DVCSのバージョン
OS: Ubuntu 12.04 64bit
fossil: Linux x86 v1.25
veracity: 2.5.0.11065 [64-bit LINUX]
fossil のインストール
Fossil: Fossil http://www.fossil-scm.org/fossil/doc/trunk/www/index.wiki
- 上記のURLのDownloadから自分のOSに対応したファイルをダウンロードする
- 解凍して、PATHの通った場所に置く
- versionを表示して動作確認する
$ fossil version This is fossil version 1.25 [d2e07756d9] 2013-02-16 00:04:35 UTC
他OSで試してないですが、たぶん他OSも実行ファイルを置くだけで簡単にインストール出来ると思う
veracity
Veracity - The Next Step in DVCS http://veracity-scm.com/
上記のURLのDownloadsにある"Install on Ubuntu from SourceGear APT Repository"に従ってAPT repositoryを追加する
$ lsb_release -c Codename: precise $ echo "deb http://debian.sourcegear.com/ubuntu precise main" > /etc/apt/sources.list.d/sourcegear.list $ echo "deb-src http://debian.sourcegear.com/ubuntu precise main" >> /etc/apt/sources.list.d/sourcegear.list
※ precise の所はUbuntuのバージョンで変わるので、lsb_releaseで確認した値にする
apt-getでインストールする
$ sudo apt-get update $ sudo apt-get install veracity
verisonを表示して動作確認する
$ vv version 2.5.0.11065 [64-bit LINUX]
他OSで試してないけど、Downloadsにインストーラーが置いてあったので、こちらも簡単にインストールできそう
Gitでブランチをロック(変更不可)する
Git v1.8.2のDocumentationをgrepしてもそれっぽい記述はないので、正式な機能じゃないと思う。
gitの内部処理を悪用活用した方法なので、内部処理が変わると使えなくなるかも。
使用は自己責任で。
masterブランチのロック
これで、masterブランチの変更(commit, resetなど)が出来なくなる。
$ touch .git/refs/heads/master.lock
コミットしようとすると、下記のようなメッセージが表示される
fatal: Unable to create '/home/sinsoku/Projects/sample/git-sample/.git/refs/heads/master.lock': ??????????. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git process is running and remove the file manually to continue.
indexのロック
ついでに、こっちだとindexを変更できなくなるので、addすら出来なくなる。
$ touch .git/index.lock
Gitの歴史を最初から作り直す時に使うコマンド一覧
「今までのログを最初から作り直したい!」って事が時々あるので、その時に使えそうなコマンドをメモっておく。
コマンド
新しい歴史を持つブランチを作成する
$ git checkout --orphan new_branch
indexにaddされた変更を全て取り消す
$ git rm -r --cached .
空のコミットを作る
$ git commit --allow-empty -m "init project"
別のブランチのファイルをローカルに持ってくる
$ git checkout old_branch -- .
このコマンドの実行後、ファイルがaddされた状態になるので注意。
別のブランチのファイルをzipで持ってくる
$ git archive -o old_branch.zip old_branch
何が便利なの?
プロジェクトの初期で、最初に.gitignoreが無くて変なファイルがコミットされてたり、
READMEが無くて('A`)ウボァーって時に使える。