nDiki : バージョン管理システム

バージョン管理システム - version control system

2010年8月10日 (火)

今日のさえずり: コミットログって言い訳書きたくなるよね?

2010年08月09日

  • 09:34 今日はいい日だ。
  • 12:05 三色鶏そぼろ弁当 398円。 (@ セブン-イレブン神田佐久間町店) http://4sq.com/cEfW1k
  • 17:55 パンとお茶 213円。 (@ ファミリーマート神田佐久間町店) http://4sq.com/biJuCj
  • 18:17 桃いただきました。ありがとうございます。

2010年08月10日

[ 8月10日全て ]

2010年11月19日 (金)

Git でローカルリポジトリの連続するコミットをまとめてから push したい時

分散型バージョン管理システムである Git では SubversionCVSVisual SourceSafe などと違って気軽にローカルリポジトリにコミットしていって、最終的に形になったところで公開/共用リポジトリに push するといったことができる。

こまめにローカルリポジトリにコミットしながら作業していくことで、いつでも後戻りしてやり直したり変更点を確認したりできる。ただちょっとした変更の連続によるたくさんのコミットを公開/共用リポジトリにそのまま push したくない。そういう場合は意味のある単位にコミットをまとめてから push したい。

Git では git-rebase でこれができる。

最新のコミット(HEAD)と1つ前のコミット(HEAD^ / HEAD~1)をひとつにまとめて HEAD~2 の次のコミットにしたい時

 A---B---C---D---E
         |   |   |
         |   |   HEAD
         |   HEAD^
         HEAD~2

最初に git rebase する。

  git rebase -i HEAD~2

すると

  pick <HEAD~1のハッシュ> <HEAD~1 のログ>
  pick <HEADのハッシュ> <HEAD のログ>

という行を含む内容でエディタが起動する。HEAD を HEAD~1 にまとめたいので 2番目の pick を squash に書き換えエディタを閉じる。

すぐにまた今度はコミットログ修正のためのエディタが開く。HEAD~1 のコミットログと HEAD のコミットログがあらかじめ含まれているので、それらを編集して2つ分の内容を反映したものに書き換えエディタを閉じる。

これで直近の2つのコミットがまとめられて新しい1つのコミットになる。

 A---B---C---F

ローカルでの試行錯誤をとりまとめて整理されたコミットになったのでここで push する。

  git push

なお squash を使えばできるというヒントは @tokuhirom 氏に教えていただきました。ありがとうございます。

[ 11月19日全て ]

2011年3月4日 (金)

今日のさえずり: ねじ巻き

naney:5496615374

2011年03月04日

[ 3月4日全て ]

2011年6月14日 (火)

perltidy の --line-up-parentheses 諦め

perltidy の設定ファイル .perltidyrc の見直し。

 # Basic Options
 --maximum-line-length=78        # default is 80
 --indent-columns=2              # default is 4
 --preserve-line-endings
 --iterations=2                  # Add!

 # Code Indentation Control
 --nooutdent-long-lines          # default is --outdent-long-lines

 # Whitespace Control
 --paren-tightness=2             # default is 1
 --square-bracket-tightness=2    # default is 1
 --brace-tightness=2             # default is 1
 --nospace-for-semicolon         # default is --space-for-semicolon

 # Line Break Control
 --opening-brace-always-on-right # Add!
 --break-before-all-operators    # change from --want-break-before

 # HTML Options
 -nnn
 --nohtml-entities

今回の変更点:

  • --iteration=2 を追加。
  • --line-up-parentheses を指定するのを止め。
    • ( の位置が深い桁数のところにあって、そこで桁揃えするスペースが無いと次の行が右寄せにになるのだけれど、どうもこれが美しくなく感じてきたので。
  • --vertical-tightness と --vertical-tightness-closing を外す。
    • --line-up-parentheses 無しにこれらを指定すると、インデントが1段余計に入るので。
  • --opening-brace-always-on-right を指定。
    • if などでの { がそのキーワードと同一行に置けない場合に独立した行に置かれるのを止めさせる。
  • -- break-before-all-operators を指定。
    • 今までは --want-break-before を列挙していたけど、結局全部指定しているので。

基本タイトな整形が好きなので --vertical-tightness 系を切るのは断腸の思いではあるが、この設定の方が整形に一貫性があるのでよしとしよう。

[ 6月14日全て ]

About Me

Naney Naney (なにい)です。株式会社ミクシィでマネージャー・プロダクトオーナーをしています。

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。

follow us in feedly

※内容は個人的見解であり所属組織とは関係ありません。

月別インデックス
Process Time: 0.065246s / load averages: 0.92, 0.89, 0.77
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker