タグ別アーカイブ: git

gitの設定

タグ: | 投稿日: 投稿者:

こんにちは、kikuです。 gitを便利に使っていこうと思います。 まず今の環境を確認しましょう。

これで見れます。

$ git config --list

 
名前とメールアドレスを登録していない人はこれをしましょう。

$ git config --global user.name "kiku"
$ git config --global user.email "kiku@example.com"

 
色の設定はこれでまとめてできます。これで結構見やすくなります。

$ git config --global color.ui auto

 
diffとかstatus等、各コマンド単位で色をつけたいと思ったらこれで設定可能です。

$ git config --global color.diff auto
$ git config --global color.status auto
$ git config --global color.branch auto

 
他にもコミットメッセージ等を入力する際に使用するエディタの指定ができます。

$ git config --global core.editor vim

 
diffツールの指定もできます。。。が、複数の設定が必要です。
extMergeというツールを使おうとした場合の例です。

$ git config --global merge.tool extMerge
$ git config --global mergetool.extMerge.cmd 'extMerge "$BASE" "$LOCAL" "$REMOTE" "$MERGED"'
$ git config --global mergetool.trustExitCode false
$ git config --global diff.external extDiff

上の4つのコマンドは、こういうことをしています。
1.merge.tool で どんなツールを使うのかを Git に伝え
2.mergetool.*.cmd で そのコマンドを実行する方法を指定し
3.mergetool.trustExitCode で「そのコマンドの終了コードでマージが成功したかどうかを判断できるのか」を指定し、
4.diff.external で diff の際に実行するコマンドを指定します。

今回は基本的な設定を紹介しました。
他にも色々な設定があるので、是非探してみて下さい。


任意の名前でGitコミット

タグ: , , | 投稿日: 投稿者:

こんにちはモリです。

今年の暑い夏もお盆まで!というニュースを見て一安心しました。。。

今回も備忘録として書いていきます。

今回はGitのコミットをする際に任意の名前にてコミットを行うやり方を紹介します。

commit の引数に[–author]を指定すると任意のユーザー名を指定することで可能になります。

git commit --author='mori <mori@fairway-corp.co.jp>' -m 'コメントを入力'

19

これで、いちいちconfigを編集しないで済みます。

お試しあれ。


[git]stashコマンドで修正コードの一時退避

タグ: | 投稿日: 投稿者:

こんにちは、kikuです。

ソースコード管理に【git】を使ってますか?この記事を見てるということは使っているはずですね。
先日使ってみて便利だと思ったコマンドを紹介します。

ちょっとした作業している最中に、別ブランチでのちょっとした対応が割り込んできたり、、、ということはよくあることです。
作業中のコードがとても中途半端だったり、commitするまでも無いような状態だったりした時はすごい面倒くさくて困っちゃいますね。

そんな時はこれ!【git stash】です。

一時的に修正していた内容を退避することができます。
コマンドを叩くと、コードはHEADと同じ状態になります。
つまりHEADとの差分がなくなるということです。
その差分は【stash】に保存してくれますので安心してください。

HEADとの差分がなければ何も問題なくcheckoutできるので安心してできます。
そして退避したコードを復元させるには

【git stash pop】を使います。

pullした状態のコードに先ほど退避した差分コードを差し込みます。
これでまた作業再開できますね。

いろいろ便利なオプションがあるので少し紹介します。

まず基本的な退避(saveは省略可)

$ git stash save

stashにメッセージを付けたければ

$ git stash save "message"

退避リストを表示(stashは複数退避しておくことが可能です)

$ git stash list

listの表示例(stash@{0}はメッセージ有りで退避、stash@{1}はメッセージ無しで退避)

stash@{0}: On master: stash_test
stash@{1}: WIP on master: 8e4db62 Merge remote-tracking branch 'origin/master'

退避から戻してstashから消す

$ git stash pop

退避が複数あった場合は指定する。こちらも戻したstashは消える。

$ git stash pop stash@{1}

applyを使えばstashから消えない

$ git stash apply
$ git stash apply stash@{1}

stashから消す

$ git stash drop
$ git stash drop stash@{1}

stashからすべて消す

$ git stash clear

今回は非常にシンプルなオプションのみの紹介です。
他にもたくさんのオプションや、他のコマンドとの合わせ技などがありますが書ききれないので省略します。
是非チャンスがあれば活用してください。


プロジェクト管理ツールとかの話

こんばんは。
たまには誰からも邪魔されずに1つのプロジェクトにがっつりのめりこんだ開発をしたいなと思っているベッチです。

今日はプロジェクト管理ツールの話です。

弊社ではプロジェクト管理ツールとしてRedmineを使っています。
最近、1.4から2.3にアップデートしました。

アップデートというよりも、開発していく上で便利なプラグインが最初から入っているalminiumをインストールしました。

https://github.com/alminium/alminium

この時に、1.4のsqliteから2.3のmysqlへのデータ移行でうまくmigrationできなかったので手動で移行しました。
休日丸1日かけて・・・

苦労した甲斐もあってなんとか移行できましたが、若干データ移行がミスってますww。
ま、影響少ない部分だからいっか。

前置きはさておき、一番使いたかったのがredmine_backlogというスクラム開発用のプラグインです。

https://github.com/backlogs/redmine_backlogs

ストーリーやタスク、スプリントの管理、かんばんの表示/更新がRedmineで使用できます。

使ってみると若干融通がきかない事もありはがゆかったりします。

で、今回のRedmineの移行で何度かエラーが出た時にソースを追っていく過程でRailsに慣れ始めてきたのでこの勢いでRailsを使えるようにしてRedmineを使いやすく改修していくぜ!っていう目標をたてたりたてなかったり。

あと、実は裏でJenkinsを動かしているのでRedmineやGitと連携して開発を効率よくまわしてやるぜ!っていう目標をたてなかったりたてたり。

そんな事を考えているうちに来週末はデブサミが始まったり始まらなかったり。

http://event.shoeisha.jp/devsumi/20140213/

2日とも行きます。

それでは良い週末を。


[備忘録]役立つコマンド

タグ: , , | 投稿日: 投稿者:

最近、喉風邪にやられ人と会話すら辛いモリです。

何かと役に立つコマンドがあってもすぐ忘れてしまうという事で、備忘録として残します。

GITコマンドの【DIFF】を紹介。 GITの差分を見る時ってすっっっごい見づらいですよね!?(自分だけ?

たとえば、以下のソースを変更して

		  <div class="well sidebar-nav">
			<ul class="nav nav-list">
			  <li class="nav-header">Sidebar</li>
			  <li class="active"><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li class="nav-header">Sidebar</li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li class="nav-header">Sidebar</li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			</ul>
		  </div><!--/.well -->

こんな感じに。。。。

		  <div class="well sidebar-nav">
			<ul class="nav nav-list">
			  <li class="nav-header">Sidebar</li>
			  <li class="active"><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link追加した文字</a></li>
			  <li><a href="#"></a></li>
			  <li class="nav-header">Sidebar</li>
			  <li><a href="#">上書かれた文字</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li class="nav-header">Sidebar</li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			  <li><a href="#">Link</a></li>
			</ul>
		  </div><!--/.well -->

【git diff】を実行したとき
無題

【git diff --color-words --word-diff-regex='\\w+|[^[:space:]]'】を実行したとき

無題1

追加した文字は『緑』で削除した文字は『赤』で表示してくれます。
なにがどぉ~なったのかが一目でわかりますね!

ちなみに、ローカル環境でツールが使えるならEclipseやWinMergeなどに任せちゃってます ( ^0^;

無題2


git log表示のカスタマイズ

タグ: | 投稿日: 投稿者:

初めまして。kikuです。

プロジェクトのソースコード管理ツールはよくgitを使っています。

logコマンドをもっと見やすくカスタマイズしてみます。

下のコマンドは私がよく使用しているログコマンド

git log --graph --all --color --pretty='%x09%ad %x09%h %cn%x09%s %Cred%d'

上記コマンド解説

–-graph ツリー表示
–all  他ブランチ含む全てのログ表示
 –color  色
 –pretty  ログのフォーマット

また–prettyで見た目の変更や色々情報を追加しています。

%x09 タブ
%ad 日付
%h 短縮版ハッシュ
%s 件名
%Cred %Cred以降の色を赤色にする(%Cblue、%Cgreen等もある。リセットは%Creset)
%d branch名

上記以外にも色々なコマンドがあります。用途によって入れます。

–stat 各コミットで変更されたファイルの統計情報を表示する
–shortstat –stat コマンドのうち、変更/追加/削除 の行だけを表示する
–name-only コミット情報の後に変更されたファイルの一覧を表示する
–name-status 変更されたファイルと 追加/修正/削除 情報を表示する(–prettyで%ad使用時)

またprettyにも色々ありまして、私的に使えるのが[%cr]でこれは相対日付が出せます。
2週間前にコミットされていたら(2 weeks ago)のような表示になります。

表示の際は色指定を細かくやると見やすくてとてもいい感じです。

コマンドは長いですが最初のコマンドを更に改造したコマンドがこちら。

git log --graph --all --pretty='%x09%ad %x09%Cblue%h%Creset %C(yellow)%cn%Creset %s %Cred%d %Cgreen(%cr)'

是非お試し下さい。