タグ

gitに関するkitokitokiのブックマーク (295)

  • git commitで使われるメールアドレスをスマートに切り替える方法

    読者の皆さまが普段使っているバージョン管理システムは何でしょうか?多くの会社さんと同様、KLabでは大多数のプロジェクトでGitを利用しています。 Gitでは全てのcommitについて名前とメールアドレスが記録されます。ところで、Git管理しているリポジトリ上で会社のメールアドレスと個人のメールアドレスが混ざることがありませんか? KLab社内では大半のプロジェクトGitHub Enterpriseを利用している一方、一部プロジェクトや公開用のリポジトリについてはgithub.comも併用しており、それぞれで登録メールアドレスが異なっていたりするため、間違いが起こりやすい状況になっています。 稿では、そんなときでもリポジトリごとに適切なメールアドレスでcommitできるような~/.gitconfigの書き方を紹介します。 具体的な手順 今回紹介する手順は、リポジトリをgit clone

    git commitで使われるメールアドレスをスマートに切り替える方法
  • Git Submodule の代替: Git Subtree | Atlassian Japan 公式ブログ | アトラシアン株式会社

    インターネットには、Git submodule を使っては いけない という記事が飛び交っています。私はこれらの記事が言うほどひどいものとは思っていませんが、そういった主張が大方正しいことは認めます。以前の投稿でも説明しましたが、submodule は利用価値のあるユースケースは少なく、逆にいくつもの欠点があります。 では、これに代わるものはあるのでしょうか? 答えは「ある」です。Git の利用は続けつつ、プロジェクトにおけるソフトウェアの依存関係を追跡することができるツールが (少なくとも) 二つあります : git subtree google repo この記事では、git subtree に注目し、完全とまではいえないもののそれが git submodule の問題を解決するものであることを説明しようと思います。 実例としていつもの私のユースケースを取り上げます。自分の dotfi

    Git Submodule の代替: Git Subtree | Atlassian Japan 公式ブログ | アトラシアン株式会社
    kitokitoki
    kitokitoki 2015/05/29
    subtree
  • git subtree使ってみた - Qiita

    共通で使いたいcssを別リポジトリで管理したくてgit subtree使ってみた。 cssを複数箇所で触る可能性もあるのでsubmoduleは使わずに。 サブツリーの追加 親リポジトリで共通で使いたいcssのリポジトリをaddしてfetchしておく。

    git subtree使ってみた - Qiita
    kitokitoki
    kitokitoki 2015/05/28
    subtree
  • 【git】社内のChefリポジトリをgit subtreeで利用する | DevelopersIO

    はじめに こんにちは植木和樹です。クラスメソッドではOSやミドルウェアの設定にchef(chef-solo)を頻繁に利用しています。chefを利用するようになって約1年。その間に多くの(当に!)プロジェクトの構築を行ってきました。 多くの構築を経験していると、ある程度のパターンというか定石がでてきます。例えばApacheをインストール/設定するにしても、 KeepAliveはOnにする TimeOutは120秒(かそれ以上)にする ELBからのヘルスチェックはアクセスログに記録しない 案件ごとに異なる設定は /etc/httpd/conf.d に入れてRoleやNodeで指定できるようにする などです。 そうなると「クラメソ社内Chefリポジトリの整備が必要だよね〜」という話が当然でてきます。そして大瀧さんや望月さんの努力の結果、いい感じにChefリポジトリが整備されてきました。 日は

    【git】社内のChefリポジトリをgit subtreeで利用する | DevelopersIO
    kitokitoki
    kitokitoki 2015/05/28
    subtree
  • git でよく使う "^"(サーカムフレックス) が zsh に解釈されて困る件 - Qiita

    小手先では、サーカムフレックスをエスケープすれば問題ないのですが、釈然としない… 原因 setopt extendedglob すると、サーカムフレックスがファイル名のパターンマッチに使われるようになります(引用の1)。 そして、パターンマッチしてファイルが見つからなかった時アボートする(引用2)、という振る舞いが合わせ技として効いているようです。 対処 エスケープし続ける tig したり、一覧性のよいフロントエンドが使えるならそうすればいいんじゃね? サーカムフレックスじゃなくて"~"(チルダ)を使う コメントいただきました。daimatz さん、ありがとうございます! zle を駆使する 工夫と趣向と分別と。で紹介されていた git-escape-magic を使うとか 制服ガール(コメントで教えていただきました。tunepolo さん、ありがとうございます!) setopt no_n

    git でよく使う "^"(サーカムフレックス) が zsh に解釈されて困る件 - Qiita
    kitokitoki
    kitokitoki 2015/05/28
    「^ ではなく ~ を入力するようにすると幸せになれます。HEAD^^^ と HEAD~~~ と HEAD~3 は同じです。」
  • Gitでブランチを作るのを忘れてmasterにコミットしてしまったときの対処法 - Qiita

    (追記)すごくいいねがついていますが、コメントで皆さんが提案してくださっている方法の方が簡単なのでおすすめです。コメント欄を参照してください。 通常ブランチを作ってからブランチを切り替えて実装を始めますが、たまにはうっかりブランチを作るのを忘れてしまうことありますよね。 そんなときの対処法のメモです。要は新しく作った別のブランチにコミットを移動する方法です。 間違えて3つmasterにコミットしてしまっている状態で、新しくbranch01ブランチを作ってそこに移すというシナリオで書いていきます。 branch01ブランチを作る ブランチを作るべきだった位置からブランチを作る

    Gitでブランチを作るのを忘れてmasterにコミットしてしまったときの対処法 - Qiita
  • git submoduleの更新 - rochefort's blog

    2017.8.31 追記 この記事は間違っています。正しくは下記でした。 git submoduleの更新方法を勘違いしていた 昔書いた記事を参考にしてくださった方がいて、 でも「git submodule updateで更新できないよ」と。 gitのsubmoduleだけを最新版にしたい場合のコマンドメモ - Reinvention of the Wheel 私自身もgit submodule updateで更新できると思ってました。 というか、一度も更新処理試してなかった。 結論から言うと これでOKでした。foreach便利。 $ git submodule foreach 'git pull origin master' $ git submodule update ですが、no branch になってしまってるsubmoduleがあったので、pullするのはこっちの方がいいかもし

    git submoduleの更新 - rochefort's blog
    kitokitoki
    kitokitoki 2015/05/11
    submodule
  • Git Submodules: コアコンセプト、ワークフロー、コツ | Atlassian Japan 公式ブログ | アトラシアン株式会社

    Git を使った開発では、サブモジュールを使うことによって、他のプロジェクトを自分のコードベースに取り込めるようになります。それも、他のプロジェクトの履歴を分離しつつ、あなたのプロジェクトの履歴と同期できるようになるのです。これはベンダーライブラリ問題や依存関係問題を解決する便利な方法です。git に関してはいつもそうですが、このアプローチもかなり自己流なのでうまく出来るようになるまで少しばかり研究することをお勧めします。submodules に関する好例や詳しい説明はすでに公開されているので、ここでまた繰り返すのはやめることにします。この記事では submodule という機能を最大限に活用するのに役立つであろういくつかの面白い情報を共有したいと思います。 目次 コアコンセプト 考えられるワークフロー 初めての人向けの役に立つコツ サブモジュールを自分のフォークしたリポジトリで置き換える

    Git Submodules: コアコンセプト、ワークフロー、コツ | Atlassian Japan 公式ブログ | アトラシアン株式会社
    kitokitoki
    kitokitoki 2015/04/28
    git submodule の実用的な解説。
  • git-link.el : カレントバッファのGithub/Bitbucket/Gitoriousへのリンクを取得する

    git-link 20170603.1026(in MELPA) Get the GitHub/Bitbucket/GitLab URL for a buffer location GitHubではコードをブラウザできれいに表示してくれます。 場合によってはEmacsよりも GitHub で表示させたいこともあるでしょう。 そんなときには git-link.el が提供する M-x git-link を使ってみましょう。 カレントバッファがGitHubリポジトリからcloneしたのであれば、 そのファイルの現在行へのGitHub URLを kill-ring にコピーしてくれます。 あとはC-yで貼り付ければいいです。 たとえばgit-link.elの49行目で実行すれば https://github.com/sshaw/git-link/tree/master/git-link.el#L

    git-link.el : カレントバッファのGithub/Bitbucket/Gitoriousへのリンクを取得する
  • インデントコミットで真犯人がわからなくなった場合の git blame

    config_param :queued_chunk_flush_interval, :time, :default => 1 を追加したコミットがどれかを探したいとします。 しかし、git blame を見るとこんなかんじに、インデントコミットによってほぼ全ての履歴が上塗りされていてどれだかわからない、みたいな状況にどうやって真犯人を探そうかという話です。 1. git blame -w を使う インデントコミットを無視したいだけであれば git blame の -w オプションが使える。-w は比較の際に whitespace を無視してくれるオプション。git diff にもあるよね。 $ git blame -w lib/fluent/output.rb ... (省略) 14d01c71 (Masahiro Nakagawa 2013-03-27 03:56:51 +0900 1

    インデントコミットで真犯人がわからなくなった場合の git blame
    kitokitoki
    kitokitoki 2015/03/03
    “インデントコミットで真犯人がわからなくなった場合の git blame”
  • gibo でいいじゃんという話 - ちなみに

    ありがたいことに昨日のエントリがそこそこブクマを集めているのだけれど、コメントで gibo を使っているという話があって、存在を知らなかったので試してみたら gibo で良かったという話。 gibo なんか日人としては義母を連想してしまいアンニュイな気持ちになるのだけれど、gitignore boilerplates の略だそうです。 GitHub が公開している github/gitignore から任意のものを取ってきてくれる。当然複数のものをつなぎ合わせることも出来る。 出来た .gitignore は昨日紹介した .gitignore.io のものとほぼ同じなのだけれど、それもそのはず、どちらも github/gitignore から元データを取ってきている。 しかし、gibo の場合は初回にローカルに clone してくれるので速い。.gitignore.io の場合は lis

    gibo でいいじゃんという話 - ちなみに
  • [java] どのブランチから作られた jar かをわかりやすくしたい - tokuhirom's blog

    どのリビジョンが実際にデプロイされてるかをその場ですぐに確認したいというような要求がある。 そういうわけで、jar の中にリビジョン情報などを埋め込みたい。 そんなときには git-commit-id-plugin が便利。 https://github.com/ktoso/maven-git-commit-id-plugin 設定がごちゃごちゃと書いてあるが、ごちゃごちゃ書かなくても OK である。 以下のように書けばOK。 <build> <finalName>${project.artifactId}-${project.version}-${scmBranch}-r${buildNumber}-</finalName> <plugins> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id

  • Heroku にある Git リポジトリを楽に remote に設定する - Qiita

    Heroku Advent Calendar (がもしもあったらそちら) に投稿するような内容だと思いますが,無かったので Git ネタということで. 複数マシンから 1 つの Heroku で動くアプリを開発する まず,何かしらのアプリをある 1 台のマシン (例えばデスクトップ PC) で作成します. それを Git リポジトリとして Heroku のサーバに push します.それにより deploy が行えるのが Heroku の大きな特徴の一つだと言えます. さて,最初に push する人は,Heroku 上にアプリを作る作業を行いますから,

    Heroku にある Git リポジトリを楽に remote に設定する - Qiita
    kitokitoki
    kitokitoki 2015/01/26
    heroku git:remote --app APPNAME
  • git-gutter.elの紹介 - Qiita

    拙作の git-gutter.elを紹介します. 作り始めたのは 2年前ぐらいでしたが, 今年当初から問題となっていた高速化の課題など取り組んだので改めて紹介しようと思います. リポジトリ 今年行った改良点 hook-pointでの処理を同期的に行っていたものを非同期に変更 不要な更新を極力行わないように修正 Git以外の対応(Mercurial, Bazzar) 大きな変更は軽量化です. 重いということがいろいろ問題視されていて, git-gutter-plusという fork版ができたりしていました. 自分でもそのあたりを認識していたんですが, よくわからないし, 我慢すれば使えるということで放置していました. しかし今年はスキルも高まってきたし, そろそろできるだろということで取り組んでなんとか対応出来ました. Linux Kernelソースで使うこともありますが, 不満を感じること

    git-gutter.elの紹介 - Qiita
  • GitHub - rschmukler/git-today: Fun little tool for git to see dev done today.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - rschmukler/git-today: Fun little tool for git to see dev done today.
  • vc-git の vc-annotate をコンパクトな見た目にする - @kyanny's blog

    vc-annotate は Emacs のキラーフィーチャーと言っても過言ではない便利な機能だが、 vc-git でパスの深い位置にあるファイルを annotate すると肝心のコードが隅に追いやられてしまって見づらい。 v キーでアノテーションのオンオフをトグルできるが、キーバインドを忘れがちだし、 author と変更日時まで隠れてしまうとそれはそれで困る。 vc-annotate は内部的に git blame コマンドを利用しているが、引数もろとも vc-git.el でハードコードされており、残念ながらここをカスタマイズする標準的な方法は提供されていない。幸いコマンドを実行する部分が個別の関数になっているので advice で上書きできる。 (defadvice vc-git-annotate-command (around vc-git-annotate-command act

    vc-git の vc-annotate をコンパクトな見た目にする - @kyanny's blog
  • git用のpre-commit gemが便利すぎる - TakiTakeの日記

    まずは $ gem install pre-commit # In your git repo $ pre-commit install これだけで、うっかり残念なコミットをする事故が防げます。 Git フック使ってますか? http://git-scm.com/book/ja/Git-%E3%81%AE%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA-Git-%E3%83%95%E3%83%83%E3%82%AF コミットする前にバリデーションかけて、通らなかったらコミット中止する。コミットメッセージにブランチ名を自動挿入する。など、ルーティンワークをフックに仕込んでおけば、誰も読まないガイドラインページを書く手間が省けますし、強制する事ができて幸せです。 じゃあ、何をフックに設定するかと言うと コードレビューしていると、気にな

    git用のpre-commit gemが便利すぎる - TakiTakeの日記
  • Travel Back and Forward in Git History

  • Git tagとGitHub ReleasesとCHANGELOG.mdの自動化について

    GitHubには Releases という機能があります。 Release Your Software Creating Releases · GitHub Help GitHubのリリース機能を使う - Qiita 簡単に言えば、gitのtagやbranchに文章や添付ファイルを追加して公開出来るページです。 基的にはgit tagと連携してるので、tagを付けてgit push --tagsをしていれば、自動的に追加されます。 メリットとしては以下のような事が行えます。 git tagにパーマネントリンクがつく(重要!) メッセージ(リリースノート等)が書ける 添付ファイル(zip)をアップロード出来る(配布するバイナリとか) RSS Feedsが自動的に生成される(TagとReleaseの2種類がある) ライブラリ等にtagがついてると利用しやすい。 git tagとGitHub

    Git tagとGitHub ReleasesとCHANGELOG.mdの自動化について
  • GitのhookでCtagsを実行する | SanRin舎

    Ctagsを使って、クラス名や関数名のインデックスを記述したtagsファイルを作っておくと、vimでキーワード上にカーソルをおいて、<C-]>を打つと、そのキーワードが定義された場所に飛んでくれて便利。 しかし、新たにキーワードが増えるたびにctagsを手動で実行するは面倒なのでGitのhookを使うことにする。 また、複数のプロジェクトがあるとき、各プロジェクトごとにtagsファイルを分けておくと、余計な候補が出なくてよいが、うまくやらないとプロジェクトを変えるたびに:set tagsでtagsファイルの指定を変更なくてはならないし、tagsファイルをGitのディレクトリ以下に置くと、.gitignoreで無視してやらなくてはならなかったりするので、その辺を解決させる。 まぁ、vimプラグインで有名なtpopeのtbaggery – Effortless Ctags with Git

    GitのhookでCtagsを実行する | SanRin舎