Git

git push で自動デプロイ時に git pull は使わない方がいいかもしれない

Git

heroku みたいな git push で自動デプロイする方法として、よく post-recceive フックで git pull する方法が載っているけど、 自分の場合、それがうまくいかなかったことがあったのでメモ。 よくある post-receive フックの内容は以下の通り。 #!/bin/sh ( …

Gitlab 4.2 + Gitolite で Git フックを使う

Git

Gitlab で作ったプロジェクトでフックを使おうとしたら結構苦労したのでメモ。 以下のディレクトリ構成は Gitlab のインストール手順に従った場合のものなので、Gitolite を手動インストールしたような場合は適宜読み替えを。 まず、Gitolite の機能として、…

git bisectで最初のbadコミットの情報を取得する

Git

最近ようやく git bisectの使い方を学んだ。 ただ、git bisectを使っていて少し躓いたのが、コミットをckeckoutする順番によってはbadコミットの1つ手前でbisectが完了することだ。 具体的には、 A(good) → B(good) → X(bad) → Y(bad) → Z(bad)という履歴の…

コミットメッセージ中に diff を表示したらいろいろ捗った

Git

変更をコミットする時に、大抵の人は git diff --cached なんかを使ってコミット内容を確認してからコミットすると思う*1。 ただ、この「コミット前に git diff --cached」作戦は、少なくとも commit --amend の時 squash する時 にはうまく適用できない*2。…

Redmine用Gitフックスクリプトをちょっとだけ汎用的に

Git

TiDD(チケット駆動開発)するにあたって、id:bleis-tiftが非常に便利なフックスクリプトを作ってくれている。 詳しくは Git+Redmineな人におすすめのフックスクリプト集 - みずぴー日記 が分りやすい。 ただ、トピックブランチ名のルール (id/*) や、追加され…

git reset --hard でファイルの変更は取り消せない

Git

ファイルの変更を取り消そうと思って $ git reset --hard fileとしたら fatal: Cannot do hard reset with paths.と怒られた。 $ git reset --hard HEAD fileとか $ git reset --hard HEAD -- fileとか試してもやっぱり怒られる。 じゃあどうすればファイル…

git reset についてもまとめてみる

Git

前回 git diff を図に書いてみたところ、自分の中で意外と整理できたので、これまたなんとなく使っていた git reset についてもまとめてみた。 とりあえず結論を先にまとめよう。 git reset とは? HEAD の位置を変更するコマンド。 オプションによってイン…

git diff の使い方がほんの少し理解できた

Git

いままでなんとなく使ってきたけど、ようやく使い方が分かったような気がするのでメモ。 前提知識 インデックスとワーキングツリーが理解できていること HEAD が何か分かっていること git diff ワーキングツリーとインデックスの差分を表示。 git add した後…

Visual Studio 2008 with Git Extensions

そろそろバージョン管理ツールのひとつやふたつ、使えるようになっておくと便利だろうというわけで、流行りのGitに手を出してみた。なんでも、Git Extensions を使うと Visual Studio と連携できるらしい。が、インストールしても Visual Studio には何も変…