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

2013年7月26日金曜日

gitはじめて勉強会

先日、内輪でgitの勉強会で講師をやってきました。

資料

当日使ったスライド。
あまりgitはどうだなんだという説明はせず、とにかくハンズオンでやってみる事が目的でした。


反省点

講師っていうのは初めてだった事もあり、諸々反省点がありました。
  • 内容が参加者に合っていなかった
    講師の都合でterminal上での操作前提の内容にしていたけど、慣れていない人に教えるにはやはりSourceTreeなど使った方がいいかもしれない。
    自分では commit や diff 見る程度はEclipse上でやるけど、その他はterminal上でばっかり操作していて、他のやり方を教えられるほど知らないのがネック。

  • つめこみ過ぎた
    git init から push まで粗方詰め込んだ上で、その他のコマンドの説明も諸々…という内容にしたら、目的が何処かに行ってしまった感じになった。
    色々やるより、必要最低限をしっかりやる方が最初のとっかかりとしては良さそう。
    細かい説明はいちいちせずに「○○をするにはどうするか」という目的ベースで進めた方が覚えやすいかな。

  • 脱線し過ぎた
    ただでさえ詰め込みすぎて時間の余裕があまり無いのに、途中途中の質疑応答に時間をかけすぎた。push の話をする頃にはタイムオーバーだった…
    場合によってはバッサリ時間を切って進めて、時間配分をずらさないようにしないと、なかなか話が進まない。

第2回があるかどうかは皆の声援次第。

2013年1月18日金曜日

ちょっと賢いgit graph

git logコマンドは--graphオプションなどの組み合わせで、良い感じにコミットグラフを表示させる事ができます。
git log --graph --date-order -C -M --pretty=format:\"<%h> %ad [%an] %Cgreen%d%Creset %s\" --all --date=short
Gitのちょっと便利な使い方 (ゆめ技:ゆめみスタッフブログ) http://yumewaza.yumemi.co.jp/2010/07/git.html より

git config --global alias.graph 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=iso'
1 Entry per Day: git graph http://mstssk.blogspot.jp/2012/03/git-graph.html より

ブランチやオプションの指定をしたい

上記のままでも良い感じですが、普通のgit log同様にブランチを指定したりなどしたい。
そこで、シェルスクリプトを作ってそれをgit graphというエイリアスで実行できるようにしてみる。

gitのエイリアス設定は、!マークを先頭に付けると任意のシェルコマンドを実行させられる。
git config --global alias.graph '!~/.git-graph.sh'
※設定出来るシェルコマンドはあくまで1つだけらしい。コマンドをパイプで繋ぐ事は可能だったが、セミコロンが使えないので制御文をワンライナーで記述したりは出来ない。

.git-graph.sh の中身

実行例1:オプション無しなら--allオプションを自動で付加して実行する
$ git graph 
* <b4840e1> 2013-01-16 22:38:56 +0900 [mstssk]  (HEAD, master) F
* <93d7f2c> 2013-01-16 22:38:50 +0900 [mstssk]  E
| * <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
| * <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
|/  
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例2:ブランチ名を指定すれば、そのブランチのlogだけを表示
$ git graph experiment
* <659324a> 2013-01-16 22:38:28 +0900 [mstssk]  (experiment) D
* <1210e5e> 2013-01-16 22:38:18 +0900 [mstssk]  C
* <3251633> 2013-01-16 22:32:08 +0900 [mstssk]  B
* <4264244> 2013-01-16 22:31:56 +0900 [mstssk]  A
* <4a0ab4a> 2013-01-16 22:28:16 +0900 [mstssk]  first commit

実行例3:日付形式を変更。※シェルがテキトーなので--allが付かなくなる。
$ git graph --date=local 
* <b4840e1> Wed Jan 16 22:38:56 2013 [mstssk]  (HEAD, master) F
* <93d7f2c> Wed Jan 16 22:38:50 2013 [mstssk]  E
* <3251633> Wed Jan 16 22:32:08 2013 [mstssk]  B
* <4264244> Wed Jan 16 22:31:56 2013 [mstssk]  A
* <4a0ab4a> Wed Jan 16 22:28:16 2013 [mstssk]  first commit

tab補完もしたい

ここまで来たらtab補完もしたい。
git logと同じ補完をしてくれるようにするには、以下の設定ファイルを ~/.bash_completion という名前で置いておく。
既に ~/.bash_completion があるなら、追記すれば良い。

2012年7月22日日曜日

githugでおべんきょう


gitの使い方を実際にコマンド叩きつつ勉強出来るgithugが面白そうだったのでメモ。

参考:



githugはgemで公開されてるそうなので、Ubuntuなら
$ sudo apt-get install gem ←gemがインストール済みなら不要
$ sudo gem install githug
ってな具合でインストール。

 あとは、githug叩くごとに色々指示(問題)が出されるので、それをこなしてからまたgithug叩く、ってのを繰り返していく。
gitコマンド叩いてゴニョゴニョするだけじゃなく、場合によっては問題への回答を求められたりもする。

2012年3月12日月曜日

git graph

git config --global alias.graph 'log --graph --date-order -C -M --pretty=format:"<%h> %ad [%an] %Cgreen%d%Creset %s" --all --date=iso --color'
ってgitのaliasを設定しておくと、 git graph って叩いた時にいい感じにローカルブランチの状態を表示できる。
参考ページでは --date=short になってるけど、時刻が表示されないのは嫌なのでisoにしている。

参考:
<追記 20121205>
--colorオプションを追加

[備忘録]バージョン管理していない状態のeclipseのプロジェクトをgit管理にする

バージョン管理していない状態のeclipseのプロジェクトをgit管理にする手順。
リモートリポジトリがあるわけではなく、とりあえず手元にしかないソースをgit管理状態にしてeclipseでEgitで触れる状態にする。

環境
  • Eclipse 3.7 Indigo
  • Egit 1.1

手順
  1. 当該プロジェクトのディレクトリで git init
  2. PackageExplorerで、当該のプロジェクトの右クリックメニュー → Team → Share Project...
  3. リポジトリ種類を選択するダイアログ → Git を選択。
    ※このダイアログはeclipseに複数のバージョン管理ツールのプラグインがインストールされている場合にだけ表示される。
  4. リポジトリ設定のダイアログで、「☑ User or create repository in parent folder of project」にチェック。
  5. ダイアログ内のリポジトリ一覧で、さっき git init で作ったローカルリポジトリが選択されていることを確認して「Finish」押下。

2011年6月21日火曜日

Commit to github with Egit(Eclipse plugin) on Ubuntu10.10

備忘録

環境
・Ubuntu 10.10
・Eclipse 3.5
・Egit 0.4.9

gitはインストール済み。
Eclipseは日本語化してません。

■ gitの設定(必須ではない)
$ git config --global user.name "yourname"
$ git config --global user.email "your.email@address.com"
この設定は、Eclipseの起動時に(Egitがインストール済みなら)読み込まれて、Egit上でコミットする場合も使用される。
Eclipse起動前に変更しないと、反映されない気がする(多分)。

■ ssh-keygenコマンドで公開鍵作成
パスフレーズとか聞かれる
id_rsaとid_rsa.pubの2つのファイルが生成されるので、~/.ssh/に移動しておく。
id_rsa.pubの中身をコピペして、githubのAccount Settings > SSH Public Keysで追加しておく。
titleは何でもいいらしいので、適当に。

■ Egit(Eclipseのgitクライアントプラグイン)のインストール
update-site → http://www.jgit.org/update-site/

■ Eclipse上でgitのリポジトリ生成
パッケージエクスプローラで、対象のプロジェクトのコンテキストメニュー > Team > Share Project
ダイアログでGitを選択(多分EclipseにデフォルトでCVSが入ってるので、CVSかgitかどちらを使うか必ず聞かれる気がする)
次のダイアログでリストから対象のプロジェクトを選択 > リスト下に選択したものが表示されるので「Create」ボタン押下 > finishボタン押下

■ プロジェクトのファイルをstage
リポジトリを生成したプロジェクト下の、コミットしたいファイルのコンテキストメニュー > Team > Add to Version Control

■ ファイルのローカルコミット
コンテキストメニュー > Team > Commit...

■ リモートリポジトリの生成
githubでリポジトリを生成しておく、リポジトリのURIが表示された事を確認する。
そのURIはリモートリポジトリへのコミット時に使用する。↓

■ リモートリポジトリ(github)へのコミット
プロジェクトのコンテキストメニュー > Team > Push to...
URIにリモートリポジトリのURIを入力。
ただし、Protocolはgit+sshに変える。
Userは「git」
Passwordは空のままで良い。
以下のスクリーンショットを参考に。
Nextボタン押下
公開鍵のfingerprintとか、~/.ssh/known_hostsファイルを作っていか、とか確認される
パスフレーズを求められるので入力。
次のダイアログでコミット(Push)先の設定をして、Next/Finish

次回以降も、同じ手順で。

□ 問題
リポジトリのURIが保持されてくれないので、仕方なくコミットの度にgithubのリポジトリ情報ページからコピペしてるけど、他の人はどうなの?

□ パッケージエクスプローラのフィルタ設定
パッケージエクスプローラは初期設定で、いくつかのファイルを表示しない設定になっている。(ドットファイルとか)
それらを表示しstageしたいなら、パッケージエクスプローラペインの右上の▽からFiltersを選択し、ダイアログでフィルタ設定を変更する。


□ 参考
http://womo.nconc.net/2010/03/04/github
http://blog.katsuma.tv/2009/02/first_github.html
http://d.hatena.ne.jp/keita_yamaguchi/20080409/1207752188