タグ

gitに関するrutebozuのブックマーク (65)

  • Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita

    tl;dr 先頭 8000 バイト以内に NUL が有ったらバイナリファイル。 Gitの実装 Gitの内蔵diffは FIRST_FEW_BYTES だけ検索するようになっている。 https://github.com/git/git/blob/6e0cc6776106079ed4efa0cc9abace4107657abf/xdiff-interface.c#L187 #define FIRST_FEW_BYTES 8000 int buffer_is_binary(const char *ptr, unsigned long size) { if (FIRST_FEW_BYTES < size) size = FIRST_FEW_BYTES; return !!memchr(ptr, 0, size); }

    Gitはどうやってテキストファイルとバイナリファイルを自動識別しているのか? - Qiita
    rutebozu
    rutebozu 2019/03/31
  • phiary

    phi I'm a Game Programmer and Frontend Engineer passionate about programming education. Math / C / C++ / C# / JavaScript / HTML5 / CSS3 / Python オレの Advent Calendar 2015 - Adventar の 12 日目です. git を使っていると空ディレクトリを管理したいってことよくあると思います. 一時(tmp)ファイル や ログ(log) ファイル用のディレクトリなんかがそうですね. 実は, git は空ディレクトリは add できない仕様みたいです. ですが, .gitignore を上手く使うことでそれっぽいことができるようになります. 今回はその方法を紹介したいと思います. 1. ".gitkeep" という空ファイルを配

    phiary
    rutebozu
    rutebozu 2015/12/13
  • Githubで差分をみるときに改行コードを無視する方法 | Hack

    改行コードの違いによってGithub上にプッシュされたファイルの差分が発生することがあります。 Github上のCompareで差分を確認する際に、改行コードを無視したい、そういった場合は https://github.com/aipocom/aipo/compare/features/filterTip-icon?w= などのように、URLの末尾にパラメータとして ?w= をつけると、改行コードを無視した差分を表示してくれるようになります。

    Githubで差分をみるときに改行コードを無視する方法 | Hack
    rutebozu
    rutebozu 2015/08/18
  • Gitでやらかさないための事前予防策 - Qiita

    Gitでやらかした時に使える19個の奥義を書いてやらかしたときになんとかリカバリできるようにした。 今回は、そもそもやらかさないようにしたいよねっていうお話。 コミット編 .gitignoreを細かく指定しておく .gitignoreを指定しておけば余計なファイルをコミットしちゃうことを予防できます 過去に似たようなプロジェクトがあるのならそれを流用しましょう。 ないのであれば.gitignore.ioで生成してそれをカスタムしましょう。 ワイルドカード指定やディレクトリまるごとの指定は副作用ある可能性があるので慎重に。 コミットメッセージのフォーマットを決めておく コミットメッセージのフォーマットを決めておけば書き直したいということも減ります コミットメッセージをやらかして直したいと思うことはよくあります。 そういうのって案外コミットメッセージが自由すぎることが問題だったりします。 ある

    Gitでやらかさないための事前予防策 - Qiita
    rutebozu
    rutebozu 2015/04/13
  • Windows環境でGitを高速化する - Qiita

    などにすごく時間がかかる、ということがあります。 いろいろ調べて、ある程度は改善できたので、メモ。 preloadindex 設定 こちらを元に

    Windows環境でGitを高速化する - Qiita
  • Git on Windows, "Out of memory - malloc failed"

    Have run into a problem with repository and tried almost every possible config setting found out there eg. pack.WindowMemory etc etc I believe someone has checked in a large file to remote repository and now each time I try and pull or push to it, GIT tries to pack it and runs out of memory: Auto packing the repository for optimum performance. You may also run "git gc" manually. See "git help gc"

    Git on Windows, "Out of memory - malloc failed"
    rutebozu
    rutebozu 2015/02/19
  • Git for Windows で日本語を使いたい - Qiita

    追記(2.x): Git for Windows は2015年8月にリリースされた 2.5.0 以降日語まわりの問題もいくつか改善されているので追記しました。 2.x 系では開発ベースも変わり、もはや msysgit ではなくなったので、稿のタイトルも変更させていただきます。 "Git for Windows"(いわゆる Git Bash)は Windows 上で git 利用を可能とする bash シェル環境だ。 Gitが使えるだけでなく、オールインワンで基的なコマンドを備え、 ssh, perl, curl などのツールも入っていて、cygwin なんかに比べお手軽かつお得な環境だ。 筆者の周りでは "Git Bash" で通用している。 かつては日語を扱うのが面倒であったが、1.8.3 から Bash 上で日本語入力できるようになるなど、最近の状況はだいぶよくなっている。 $

    Git for Windows で日本語を使いたい - Qiita
    rutebozu
    rutebozu 2015/01/15
  • Git のデータ構造を図で整理 - Qiita

    Git のデータ構造について図でまとめてみます。 大雑把にいうと、Git はオブジェクトと呼ばれるデータを保存する Key-Value ストアと、そのキーのラベルである参照の 2 つで構成されています。 オブジェクト .git/objects が前述したオブジェクトを保存する Key-Value ストアです。 オブジェクトはヘッダとコンテンツの 2 つで構成されています。 ヘッダにはオブジェクトの型とサイズが格納されています。 コンテンツの内容は型によって異なります。 このヘッダとコンテンツをあわせたバイナリをハッシュしたものが Key-Value ストアのキーとなります。 オブジェクトは以下の 3 つの型などに分類されます。(※1) blob tree commit それぞれについて説明していきます。 blob ファイルを表現します。 コンテンツにはファイルの実データが格納されています。

    Git のデータ構造を図で整理 - Qiita
    rutebozu
    rutebozu 2014/11/30
  • コミットメッセージのルール - Opacities

    2014-11-22 コミットメッセージのルール 開発でGit(Github)を利用している時、コミットメッセージは後からログを見返すときにとても大切なものだけど、 普段適当に記述しているのもあって、改めてルールを書くことにした。 コミットの粒度 コミットの粒度では、何かしら一つの作業を終えたら・・・という粒度でコミットすることにする。 具体的には ある範囲のUIを実装した時 何かしらのコードを削除した時 バグを潰した時 など、比較的作業単位で細かくコミットするようにする・ コミットメッセージの内容 1行目 / 内容の要約 例 modify serarch button for product menu 2行目 / 空行 空行にする理由としては、可読性や要約と内容を分離するためにある。 3行目 / 文 実際に何をやったのかを書く。長すぎるのもダメなのでだいたい60字ぐらいでまとめるよ

    コミットメッセージのルール - Opacities
    rutebozu
    rutebozu 2014/11/25
  • Gitのコミットメッセージの書き方 - Qiita

    Gitのコミットメッセージの書き方 自分なりにまとめてみました。Git歴浅いので、意見募集中です。 (2014年12月17日追記) 想像以上にたくさんの方にストックなりはてブなりいただいたので、はてブでなるほど!と思ったコメントをもとに少し修正・加筆してみました。 (2022年1月4日追記) 最新の書き方をこちらに書きました。 https://zenn.dev/itosho/articles/git-commit-message-2023 原則 以下のフォーマットとします。 1行目:変更内容の要約(タイトル、概要) 2行目 :空行 3行目以降:変更した理由(内容、詳細) 日語でも英語でもOKですが、リポジトリで統一してください。 1行目 コミット種別と要約を書きます。フォーマットは以下とします。 [コミット種別]要約 コミット種別 以下の中から適切な種別を選びます。 (多すぎても悩むので

    Gitのコミットメッセージの書き方 - Qiita
    rutebozu
    rutebozu 2014/11/22
  • バージョン管理したくない作業用スクリプトは「,」ディレクトリに入れるといい - Qiita

    TL;DR: グローバルな gitignore に ,/ を追加して、作業用スクリプトを , ディレクトリに入れると便利。 ,/tmp_script.sh で実行できる。 Git リポジトリの中に一時的に使う作業用スクリプトを置いておきたいことがある。自分だけが使うものなのでコミットはしたくないが、いちいち .git/info/exclude に追加して無視させるのも面倒臭い。 今まで自分は、 tmp_script.sh~ や tmp_script.sh.bak など、グローバルな gitignore で無視されるファイル名にしていたが、これは不要なファイルと間違えて消してしまう危険がある。 ignored.tmp_script.sh は分かりやすいぶん長い。 _tmp_script.sh は悪くないが、コミットすべきファイルにもアンダースコアで始まるものがあって紛らわしい。 そこで、作業

    バージョン管理したくない作業用スクリプトは「,」ディレクトリに入れるといい - Qiita
    rutebozu
    rutebozu 2014/10/28
  • crocos.jp

    This domain may be for sale!

    crocos.jp
    rutebozu
    rutebozu 2014/09/27
  • サイバーエージェントのGitHub活用 ~ 導入から運用体制、開発フロー、勉強会による現場への普及活動まで

    また、Organization[1]の数も360を超え[2]、リポジトリ数もOrganizationのものだけでも2000近く作られています[3]。 新規のプロジェクトは基的にGitを利用しており、既存プロジェクトもほとんどがSubversion(以下SVN)などからGitに移行しました。 記事では、Ameba事業部がどのようにGitを組織内に普及させていったか、その運用体制、現場でどのように利用されているのかをご紹介します。 [1] 複数アカウントをまとめるグループ機能です。リポジトリは個人単位だけでなく、Organization単位で作ることもできます。 [2] プロジェクト単位で1つのOrganizationを用意しています。 [3] 個人アカウントで作成したり、他からforkしたリポジトリは除いた数です。 GitHub Enterprise導入への道のり GHE導入以前の標準

    サイバーエージェントのGitHub活用 ~ 導入から運用体制、開発フロー、勉強会による現場への普及活動まで
  • gitで未追跡(untracked)なファイルもまとめて退避(stash)する - Qiita

    stash便利ですよね git stashを使えば作業中のファイルを一旦退避させておいて、別のブランチで作業し、その後また戻ってきて再開するってことができますね。 $ git branch * original hogehoge master # 作業中のファイルを一旦退避 $ git stash # 退避できたか確認してみる $ git stash list # ブランチ変更 $ git checkout hogehoge $ ~hogehogeブランチでなんか開発作業~ # ブランチを元に戻す $ git checkout original # 退避を元に戻す $ git stash pop でもstashってtrackedなファイルだけなんでしょ・・・・ git stashだと追跡してる(tracked)なファイルだけを退避してくれます。 なので追跡してない(addしてない)ファイル

    gitで未追跡(untracked)なファイルもまとめて退避(stash)する - Qiita
  • 図解 Git

    もし図の表示がおかしかったら、このページの SVGでないバージョンを試して下さい。 SVG の画像処理を中止しています。 (SVG の画像処理を再開) このページのオリジナルは、Mark Lodato さんが執筆した A Visual Git Referenceです。 このページでは、よく使われる git のコマンドを簡潔に図を用いて説明します。 git について少し知識があるなら、このページはその知識を整理するのに役立つかもしれません。このページがどのようにして作られたのか興味があるなら、私のGitHub リポジトリを見て下さい。(日語訳の GitHub リポジトリ) 内容 基的な使い方 凡例 コマンドの詳細 Diff Commit Checkout 分離HEADでの commit Reset Merge Cherry Pick Rebase 技術メモ 基的な使い方 上記4つのコマ

    rutebozu
    rutebozu 2014/08/22
  • 巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Japan 公式ブログ | アトラシアン株式会社

    git は、コードベースの発展過程を記録し、開発者間の協同作業を効率化する強力なツールです。でも、記録対象のリポジトリがとてつもなく巨大なものになったときは何が起こるのでしょうか? この記事では、いくつかの異なる意味での巨大化に正しく対処するためのアイデアと手法を少し紹介してみたいと思います。 二種類の 巨大なリポジトリ よく考えてみると 巨大なリポジトリ が生ずる理由はおおまかに言って二つあります: 非常に長い期間にわたって履歴が積み上げられた (プロジェクトが非常に長い期間継続的に拡大を続けたために開発成果が積み重なった) 場合 巨大でしかも履歴の記録が必要なバイナリ データが存在し、それがコードに反映される場合 その両方の場合 即ち、リポジトリの巨大化は二つの異なる方向に向かって起こることになります。それは、作業ディレクトリのサイズ (即ち直近のコミットのサイズ) の問題と全体の履歴

    巨大なリポジトリ を Git で上手く扱う方法 | Atlassian Japan 公式ブログ | アトラシアン株式会社
    rutebozu
    rutebozu 2014/05/28
  • 超簡単インストールが可能なGitHubクローン「GitBucket」が凄い | ソフトアンテナ

    世の中にはたくさんのGitHubクローンが存在しますが、高機能でもインストールが面倒だと、なかなか手が出しづらいものがありますよね。実際に使えるものかどうか確認したいだけなのに、動かすだけで精一杯だとやる気が萎えてしまいます。 ということで、手間をかけずにGitHubクローンソフトを体験したい方にオススメしたいのが「GitBucket」です。 gitbucket.warをダウンロードしてjavaを使って実行するだけという超簡単インストールで即動かすことができます。 インストール方法 gitbucket.war(現段階で最新版は1.12)をダウンロードし、以下のようにjavaを使って実行します。MacJava6でも問題なく動きました。 java -jar gitbucket.war 正常に起動したのを確認したら、ブラウザから「http://localhost:8080」へアクセスします。

    超簡単インストールが可能なGitHubクローン「GitBucket」が凄い | ソフトアンテナ
    rutebozu
    rutebozu 2014/04/23
  • gitでありがちな問題の解決方法まとめ - Qiita

    Git Advent Calendar / Jun. 最終日(30日目)の記事です.29日目は「いざという時のためのgit reflog」でした. Git Advent Calendar最後なので,git操作でやりがちなミスからどう回復するかをまとめます.他にもあればコメントもらえるとマージしていきます. ブランチを切り忘れてmasterでコミットしてしまった その時点でブランチを切る&reset --hardで間違ったコミットたちをmasterから消す $ git checkout -b new-branch # masterの最新コミットを消す $ git checkout master && git reset --hard HEAD~

    gitでありがちな問題の解決方法まとめ - Qiita
    rutebozu
    rutebozu 2014/02/20
  • Gitクライアントの「SourceTree for Windows」、日本語化された最新版が無償公開、アトラシアン

    Gitクライアントの「SourceTree for Windows」、日語化された最新版が無償公開、アトラシアン アトラシアンが提供している無償のGitクライアント「SourceTree for Windows」がバージョン1.4となり、無償公開されました。そしてこのバージョンからWindows版も日語化されたことが、同社エバンジェリスト 長沢智治氏のブログ「Re:WorkStyle」にポストされたエントリ「SourceTree for Windows 1.4 日語版が公開に」で発表されました。 これまでSoruceTreeのMacOS版は日語化されていましたが、Windows版は英語版のままでした。同社は「SourceTree for Windows 翻訳にご協力ください!」と昨年から協力を呼びかけており、今回のバージョン1.4からその成果が反映された形です。 SourceTre

    Gitクライアントの「SourceTree for Windows」、日本語化された最新版が無償公開、アトラシアン
  • Git submodule の基礎 - Qiita

    この記事は Git Advent Calendar 6日目の記事です! Git submodule って最初わかりにくいと思うので、基的な説明をしようと思います。 git submodule とは git submodule は、外部の git リポジトリを、自分の git リポジトリのサブディレクトリとして登録し、特定の commit を参照する仕組みです。 Subversion でいうところの、external と似ています。 さて、解説のため、手元に、リポジトリA (/path/to/a) とAの submodule として、よく使う例として Bootstrap (元Twitter Bootstrap) を登録してみます。 git submodule を理解するうえで重要なのは、 リポジトリAが指し示すsubmoduleとしてのBootstrapのcommit 現在のBootstr

    Git submodule の基礎 - Qiita
    rutebozu
    rutebozu 2014/01/25