タグ

gitに関するtomoyaのブックマーク (81)

  • Some useful Git commands for CI

    I spend a lot of time writing build scripts for interacting with Git repos. But Git’s documentation is notoriously opaque, and a lot of my Git knowledge comes from word-of-mouth rather than reading the docs. In that spirit of sharing, these are few of the Git commands I find useful when writing build scripts. This command gives you an absolute path to the top-level of your repository. Often script

    Some useful Git commands for CI
    tomoya
    tomoya 2019/05/18
    Git コマンドを利用した CI テクニック
  • ローカル環境のコード差分をリモートで実行する際に再現性を担保できるコマンドラインツール「Git Ghost」公開 - Preferred Networks Research & Development

    概要 大村、谷脇で開発したローカル環境のコード差分をリモートで実行する際に再現性を担保できるコマンドラインツールGit Ghostをオープンソースとして公開しました。このツールを使うことで、試行錯誤しながら実験をするフェーズにおいても、以前修正して実行したローカル環境のコードに簡単に戻ることができます。 開発の動機 機械学習のジョブを実行中に試行錯誤でさらに他のジョブを実行することはよくあります。Git Ghostを作る前では、そのための一番単純な方法として、例えば、ソースコードをgitで管理し、rsyncコマンドでローカル環境での差分をKubernetesクラスターに同期して機械学習ジョブを実行していました。その際、実行したプログラムが良い結果を出した場合に、以前に修正したコードに戻りたいことがよくありましたが、この方法では、gitでソースコードをバージョン管理していても、rsyncで同

    ローカル環境のコード差分をリモートで実行する際に再現性を担保できるコマンドラインツール「Git Ghost」公開 - Preferred Networks Research & Development
    tomoya
    tomoya 2019/05/13
    利用ケースがあるようなないような。
  • Gitリポジトリを解析して貢献度を出力·graf MOONGIFT

    grafはRuby製のオープンソース・ソフトウェア(MIT License)です。 プロジェクトの開発において誰が一番貢献しているか測定するのに簡単な方法があります。それはコミット回数の測定です。Gitリポジトリを使っているなら試してみたいのがgrafです。 とあるプロジェクトの例。一人でコミットし続けているとこのようになります。 別なプロジェクトの場合。複数人でコントリビュートしていると、ユーザごとに出るようになります。 grafはローカルのGitリポジトリを分析して、ユーザごとのコミット数を出力します。マシンごとに別なユーザ名を設定したりしていると分かれて出力されるようです。プロジェクトの貢献度を可視化すると面白いデータがとれるかも知れません。 MOONGIFTはこう見る 一概にコミット数が多い=貢献度が高いという訳ではありませんが、それでも一つの基準にはなります。WebKitのコミッ

    Gitリポジトリを解析して貢献度を出力·graf MOONGIFT
  • git-messenger.elを書いてみました - Shohei Yoshida's Diary

    TokyoVim #14 に参加して git-messenger.vim を作ってみた - sorry, uninuplemented: の Emacs版です。まだその行のコミットログをポップアップする 機能しかありません。 リポジトリ https://github.com/syohex/emacs-git-messenger コード popup.elが必要になりますので、利用する際は前もってインストールして おいてください。 ;;; git-messenger.el --- Port of gitmessenger.vim ;; Copyright (C) 2013 by Syohei YOSHIDA ;; Author: Syohei YOSHIDA <syohex@gmail.com> ;; URL: ;; Version: 0.01 ;; Package-Requires: ((p

    git-messenger.elを書いてみました - Shohei Yoshida's Diary
  • マージ済みのブランチをまとめて削除する便利スクリプト書いた - handlename's blog

    git 1.8.1.1 perl 5.16.2 マージ済みのブランチを消したい。 リモートリポジトリにあるのもいっしょに消したい。 というのを叶えるために簡単なスクリプトを書いた。perl。 https://github.com/handlename/bin/blob/master/delete-merged-branches ドライラン delete-merged-branches --dryrun リモートのブランチも消す delete-merged-branches --remote 特定のブランチは残す delete-merged-branches --ignore 'important-branch' カレントディレクトリが git リポジトリなのかどうかの判別はしていないし、 master にいるのかどうかもチェックしていないけど、必要になったら追加する。

    マージ済みのブランチをまとめて削除する便利スクリプト書いた - handlename's blog
  • vc-modeを使わずに mode-lineにブランチ情報を表示する - Shohei Yoshida's Diary

    以前カーネル開発で vc-modeを onにしたままやっていたら、バックグラウンドで ごにょごにょしすぎて、まともに使えるか!!、ってなってそれ以降ずっと offに していたんですが、さすがにブランチ情報がないと branch切ったときの確認に 手間がかかるなぁってことで、表示するようにしてみました。 CVS, subversionとかもう使わないんで、git対応だけです。 ついでに今リポジトリ内にいない場合もその情報を表示するように しています。 コード ;; Show Git branch information to mode-line (let ((cell (or (memq 'mode-line-position mode-line-format) (memq 'mode-line-buffer-identification mode-line-format))) (newcd

    vc-modeを使わずに mode-lineにブランチ情報を表示する - Shohei Yoshida's Diary
    tomoya
    tomoya 2013/02/02
    shell-command-to-string() によって取得される値を mode-line に表示する
  • EmacsWiki: gitconfig-mode.el

    Download;;; gitconfig-mode.el --- Major mode for editing .gitconfig files ;;; -*- coding: utf-8; lexical-binding: t -*- ;; Change Log: ;; 7-Oct-2012 Sebastian Wiesner ;; Initial sync ;; Copyright (c) 2012 Sebastian Wiesner <lunaryorn@gmail.com> ;; ;; Author: Sebastian Wiesner <lunaryorn@gmail.com> ;; URL: https://github.com/lunaryorn/gitconfig-mode ;; Version: 0.2 ;; Keywords: convenience vc git ;

  • Gitで作成できるブランチ名の限界に挑戦してみた - by shigemk2

    ふと思いたったので、Gitで作成できるブランチ名の限界に挑戦してみた。 ブランチを作成する方法 $ git checkout -b 作成したいブランチ名 で、すぐに新しいブランチを作成できるから、試すのは簡単。 emacs使いはgit-dwim.elを使うとEmacs上でブランチを作成できるよ。 Emacsからgitのブランチを扱うgit-dwim.elをリリース - (rubikitch loves (Emacs Ruby CUI Books)) 作成できたブランチ名 ! # $ 1234 72 @# idolm@ster ikura 星井美希 特殊文字を入れるのもOKだし、特殊文字だけのブランチ名もOK。 日語も可。 数字だけでもいいし、数字を入れることも出来る。 作成できなかったブランチ名 !@#$ '1234' "72" "72 idol m@ster !@#$については、zsh

    Gitで作成できるブランチ名の限界に挑戦してみた - by shigemk2
    tomoya
    tomoya 2012/09/01
    こういう挑戦はいいね。
  • Agile渋谷Emacs勉強会に参加してきた #Agile渋谷

    7月に東京に引っ越してきて、早3回目の勉強会。 そろそろ何もない週末が欲しい…w さて、そうは言っても東京で何年ぶりかに開催されたEmacsのイベント。 @mori_dev さんはじめ、お初にお目にかかれた方が何人もいて、楽しい時 間を過ごせました。 最近は勉強会ではなるべくメモを取らずに、イベントを楽しむようにして いるので、思い出したまま書いていきます。 個人的に一番面白かったのは、@inoue_ariel さんの「Emacsのバッファの 内部実装について 」。Emacsと言えばギャップバッファ、ギャップバッファ と言えばEmacsというのはもちろん、ギャップバッファという名前自体初め て聞きました。しかし、memcopy()のコストがあれほど低いのにはビックリ です。最近のCPUはキャッシュの容量が増えてるのが要因なんでしょうか。 でもギャップバッファって昔から使っているのですよねえ

  • tig でいま見ているコミットをブラウザで開く - @kyanny's blog

    tig で Git リポジトリのログを読んでるときに「このコミットのページをブラウザで見たい!でもコピペするのは面倒だ!」と思ったので o 押したら開くようにした。 tig のキーバインドは .tigrc というファイルでカスタマイズできる。外部コマンドの呼び出しができるし、いまみている commit の SHA1 を渡せるので、こんな感じで hub コマンドを呼び出せる。 だいぶ楽なのでおすすめです。

    tig でいま見ているコミットをブラウザで開く - @kyanny's blog
    tomoya
    tomoya 2012/07/22
  • Try Git In Your Browser

    ProductTry Git In Your BrowserTry Git Today we're launching a unique and easy way, in the format of a Code School interactive course, for new Git and GitHub users to try both the tool… Try Git Today we’re launching a unique and easy way, in the format of a Code School interactive course, for new Git and GitHub users to try both the tool and the service without a single bit of software installation

    Try Git In Your Browser
    tomoya
    tomoya 2012/07/05
    ほほー
  • gitで現在の作業内容をクイックセーブする - アジャイルSEを目指すブログ

    見えないチカラ: 【翻訳】Gitをボトムアップから理解する http://keijinsonyaban.blogspot.jp/2011/05/git.html 最後の方にstashの話が書かれていた。 以下、引用。 これはあなたのディレクトリの内容の全て――ワーキングツリーと、index の状態の両方を含む――を取り込み、それらのための blob を Git のリポジトリ中に作成する。tree はそれらの blob を保持し、そして stash コミットはワーキングツリーと index と、あなたが stash をした時の時刻を記録する。 これは良いプラクティスだ。なぜなら、次の日にあなたは git stash apply を使って stash から変更を戻すことになるが、毎日の終わりにはあなたが stash した全ての変更が reflog に存在するからだ。以下は、次の日の朝に作業をす

    gitで現在の作業内容をクイックセーブする - アジャイルSEを目指すブログ
    tomoya
    tomoya 2012/06/18
    stash まったく使ってなかったけど、これは良さそう。
  • git rebaseについてのtips | けーこ in サンフランシスコ

    エンジニア友達githubなどgitを使用した共同開発時の豆知識を教えてもらったので、忘れないようにメモしておきます。Thanks, Shawn! マスターとのマージ時には事前にgit rebaseを使う gitを使って共同開発をすると、たまにこんなコミットメッセージを見る機会があるかもしれません。 Merge branch ‘master’ of git://github.com/hogehoge これは、最新のマスターを私のブランチにマージしたわよ、という意味合いのコミットメッセージなのですが、正直いりません。開発者それぞれがブランチとマスターをマージするたびにこのようなメッセージをログに残してしまうと、それだけでコミット履歴を占有し、重要な情報をたどるのが困難になります。 このマージ時のコミットメッセージが発生してしまう原因は、左側の図のようにpull requestを出す前に最

    tomoya
    tomoya 2012/05/15
  • magit(emacs+git)は快適な予感がする

    これでmagit4というディレクトリが作られてgitリポジトリが初期化される 最初のコミット C-x C-fでindex.htmlを作成します。ファイルの中身 <html> <head> <title>Shizugit</title> </head> <body> <h1>Shizugit</h1> <p>Shizugitでは、参加者を募集しています。 最新の版管理システムgitについて熱く語り合いましょう。 </p> <address> <a href="mailto:magit@test.com">kzfm</a> </address> </body> </html> C-x C-sで保存します。 さて、ここでおもむろにM-x magit-statusと打つとmagit-modeのバッファーが開きます(下段)。 カーソルをindex.htmlにあわせてs キーを打つとステージングされま

    magit(emacs+git)は快適な予感がする
    tomoya
    tomoya 2012/04/18
    個人的には、Emacsからの支援がなければGitを使うのは非常に辛いです。オススメは magit と egg (magit fork) で、速度は magit > egg で、とっつき易さは egg > magit という評価です。
  • ikachanでgitのpushをIRCチャンネルに通知する (追記アリ) - id:anatooのブログ

    gitのpushがあるたびに、コミットをIRCで通知するようにする。 まずikachanサーバを立てる 適当なサーバにikachanをインストールする。ikachanはIRCにメッセージを通知するためのサーバで、これを設置することで、シェルスクリプトなどから簡単にIRCにメッセージをポストできる。 例えば、以下の様にcurlコマンドを叩くだけでIRCに通知できるようになる。 $ curl -F channel=\#catalyst-ja http://localhost:4979/join $ curl -F channel=\#catalyst-ja -F message=hoge! http://localhost:4979/noticegitのコミットにかかわらずちょっとした通知をガンガンIRCチャンネルに通知できるので便利です。 pushされるリポジトリにhookスクリプトを置く

    ikachanでgitのpushをIRCチャンネルに通知する (追記アリ) - id:anatooのブログ
  • Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering

    こんにちは。インフラの sotarok です。 先日から Git 関連の話をしている通りですが、社内で Git を使い始めています。 今日は、Git を使った日々の開発〜リリースまでのフローや、そうしたものの運用と、それをサポートするために作ったツール git-daily の紹介をしたいと思います。 ソフトウェア開発とウェブ開発の違い いやウェブ開発も広義のソフトウェア開発なのですが、ここでいうソフトウェア開発とは、クライアントアプリケーションやライブラリのようなものを指すと思ってください。 実際、ウェブ開発をしている方は感じていることだとは思いますが、両者の開発フローはかなり異なるものです。もちろん社風や開発の方針等によって色々あるとは思いますが、主に次のような特徴が挙げられると思います: ソフトウェア開発 アプリケーションはクライアントで動作する リリース間隔は比較的長く、次のバージョ

    Git で日々の共同作業やリリース作業をサポートする git-daily を作りました | GREE Engineering
    tomoya
    tomoya 2011/12/18
    この記事は見逃してた
  • チケット駆動開発に便利なGit-Hooksをためしてみた - Perl日誌

    id:bleis-tiftのGit-Hooksを試してみました。 http://github.com/bleis-tift/Git-Hooks 環境 MacOXS 10.6.6 git 1.7.3.4 $HOME/project/配下にworkリポジトリ、$HOME/repos/配下にbareリポジトリを作成します。 環境の構築手順は以下に記録しています。 http://d.hatena.ne.jp/okamuuu/20110116/1295146927 http://d.hatena.ne.jp/okamuuu/20110115/1295058479 git上にリポジトリを作成 適当なプロジェクトを立ち上げます。例としてHelloWorldを作成します。 Bareレポジトリを作成します。 % mkdir -p $HOME/repos/HelloWorld.git % cd $HOME/r

    チケット駆動開発に便利なGit-Hooksをためしてみた - Perl日誌
  • bleis-tift/Git-Hooks - GitHub

    Git Hooks これは何? Gitのフックスクリプトです。 構成 pre-commitは、masterブランチでのコミットを拒否するだけです。 常にトピックブランチで作業しましょう。 commit-msgはトピックブランチのブランチ名に含まれるチケットIDを抽出し、 コミットメッセージの一行目に自動的に追加します。 Redmine用です。 common.shはそれらに必要な関数を放り込んであります。 test-suite.shは、test_から始まるファイルをすべて実行します。 つまり全部のテストが実行されます。 test_から始まる各種ファイルはテストです。 shunit2というのを使っていて、これがLGPL v2.1なので、 こいつらの扱いはLGPLになるんでしょうか? スクリプトファイルに対するLGPLはよくわかりませんが、 これらはLGPLということにしておきます。 shuni

    bleis-tift/Git-Hooks - GitHub
    tomoya
    tomoya 2011/08/18
    ここまでやる気力はなさそう
  • 多人数開発で Git を使う場合の環境構築 | GREE Engineering

    こんにちは、インフラやってる sotarok です。最近、社内でも「sotarok は そーたろっくと読む」という誤解が広がっていましたので改めて自己紹介しますと、sotarok と書いて「そーたろー」または「そーたろー・けー」と読みます。ロックしてないのでよろしくお願いします。 今日は、Git の話です。 GREE ではずっと Subversion を使っているという話を、以前開発環境の話をしたときに少し触れたことがあります。Subversion での運用方法も、GREE では割と面白い運用をしているのでその話もどこかでしたいのですが、まあ、それは今回は置いておきましょう。どこかで聞いてください。 GREE もその昔 CVS から Subversion に移ったのですが、時代は流れるもので、いよいよ Git 化という流れがきています。Subversion と Git の違いを今更あえて挙

    多人数開発で Git を使う場合の環境構築 | GREE Engineering
    tomoya
    tomoya 2011/08/18
  • Magit でコメントの履歴を便利に使う (前編) - ”E” for ...

    Magit についての小ネタを 2 つ紹介。今回が前編です。後編はこちら。 Windows で VCS のフロントエンドとして Tortoise 某を使っていると、過去のコミット時に入力したコメントを再利用できるのが非常に便利だと感じるようになります。何度か続けて似たようなコメントを書くことが結構あるからです。Emacs の標準 VCS フロントエンドである vc.el や Magit でも、コメント入力ウィンドウで M-p / M-n を押すと、過去に入力したコメントを取り出すことができます。 ですが、その履歴は log-edit-comment-ring という変数に記録されているだけなので、 Emacs を終了すれば失われてしまいます。そこで、 session.el を使って履歴をずっと残すようにしてみましょう。 ;;; ;;; log-edit.el のコメント履歴を sessio

    Magit でコメントの履歴を便利に使う (前編) - ”E” for ...
    tomoya
    tomoya 2011/06/02
    まあ、magit は使ってないんですが。