詩と創作・思索のひろば

ドキドキギュンギュンダイアリーです!!!

Git

git fetch の裏側では何が起こっているか

Git

git fetch の裏側でどんな通信が行われてリモートリポジトリの内容が取得できるのか調べたのでまとめる。もともとは git の HTTP や SSH といったプロトコルでどのように実現されているか、というところに興味があった。Git v2.7.1 を基にしている。 事前準…

git commit --fixup とは何か

Git

git commit --fixup というオプションの存在を最近知って調べた。 ヘルプとリリースノートより "git commit" learned the --fixup and --squash options to help later invocation of interactive rebase. Git v1.7.4 Release Notes --fixup=<commit> Construct a co</commit>…

Git config から struct に読みこむ Go パッケージを書いた

Git や GitHub にまつわるツールは gitconfig に値を格納することにしておくのがユーザにも便利で、よく使っているし広く使われているとおもう。いっぽう YAML とか JSON とか設定ファイルによく使われるフォーマットは構造体に値をまとめて読みこむのが普通…

オレ流 Pull Request 作業フロー

チームで作業する同じリポジトリの中で Pull Request を送り合うのではなく、オープンソースプロジェクトに外部から PR がやってくる場合の話です。 最近のフロー 送られてきた PR に対しては、大まかには仕様の話、実装方針の話、具体的な実装の話を詰めな…

Git の特定リビジョンのツリーをファイルシステムのように扱う Go の実装

要件 以下のようなことができればよいものとします。 パスを与えられたとき、 そのパスが示すファイルの内容 (open, read) そのパスが示すディレクトリの内容 (opendir, readdir) そのパスが示すファイルまたはディレクトリの情報 (stat) パーミッション 最…

#github tips: hub pull-request の向き先がリポジトリのデフォルトブランチにならないとき

引数なしの hub pull-request を実行すると、リポジトリのデフォルトブランチに向けたプルリクエストを作ってくれます。このデフォルトブランチはふつう master を向いてますが、変更可能なので Git Flow で言う develop 的なブランチをデフォルトブランチに…

YAPC::Asia 2014 で「Git によるツール開発」というタイトルで話しました #yapcasia

Git

Git を使ったツール開発 - YAPC::Asia Tokyo 2014 YAPC::Asia 2014: Writing tools with Git // Speaker Deck 後半駆け足になりましたが、Git のサブコマンドを活用して Git のツールを作る話をしました。自分がこれまでツールを作ってきた上で、Git とのや…

ghq v0.5-pre1 をリリースしました(`ghq import` が変わります)

https://github.com/motemen/ghq/releases/tag/v0.5-pre1 ようやく重い腰をあげ、ghq に、懸案であった ghq import への変更をいれました。 @motemen suggestion: make import starred/pocket a separate program. Easier to maintain, no need to re-build …

現在 Chrome で開いているプルリクエストを一発でチェックアウトするスクリプト

プルリクエストをレビューしていて diff を見たら意外とでかいぞ手元で1コミットずつ見るか……となったときにブランチをいちいち確認してチェックアウトするのが面倒なので一発でやってくれるシェルスクリプトを書いた。 chrome-cli を使うので OSX のみ。も…

git-browse-remote 0.1.0 を公開しました & Vim からいい感じに GitHub を開く

git-browse-remote | RubyGems.org | your community gem host git-browse-remote は、コマンドラインからいい感じに(リビジョンを指定したりファイルを指定したり)リポジトリのウェブサイトを開いてくれるツールです。 入れていた変更でまだ RubyGems に…

GitHub のリポジトリの description/website をワークスペースから更新する

☝ この部分です。新しいリポジトリを作ったとき、ここの空欄が主張してきてちょっと気になりますよね。かといってブラウザでいちいち入力するのもだるい。エディタで書きたい。 ところで .git/description ってファイルを見たことありますか? ものの本には …

ghq: リモートリポジトリのローカルクローンをシンプルに管理する

以前紹介したghqというツールで GitHub のリポジトリを手元に簡単クローンしてたのを、環境が新しくなったついでに Go で書き直し、完全リニューアルしました。(前は zsh だったのでなんだかなーと思ってた。) そもそも何をするツールか GitHub や Google …

GitHub Pages に push するシェルスクリプト #git #github

GitHub のプロジェクトごとの GitHub Pages (http://motemen.github.io/git-browse-remote/ とか)は gh-pages ブランチに push すればいいということになってますが(ヘルプ)、git checkout --orphan なんてこんなときくらいしか使わないし、決まりきった…

Git の diff を美しく表示するために必要なたった 1 つの設定 #git

Git

Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight |…

Attended #GITHUBJP / Moved 「やる夫で学ぶ gitcore-tutorial」 to GitHub Pages #git

Git

I went to GitHub トレーニングチームから学ぶ Git の内部構造 @京都 : ATND last Tuesday. There I rememberd that when I first began to use Git (2008 or so), I read gitcore-tutorial, which lead me to know Git itself deeper. But my knowledge ha…

Released git-browse-remote 0.0.4 #git

git-browse-remote provides a Git subcommand that enables you to view the repository in your web browser easily (e.g. GitHub). Japanese introduction is here. This version supports --stdout option to show the URL instead of launching web bro…