タグ

gitに関するczblueのブックマーク (197)

  • Gitのデータモデル

    近藤です。こんにちは。Gitは様々な利用の仕方ができますが、その基盤となるモデルは8個だけの簡単なモデルです。これらのモデルを理解していない状態でGitを利用すると、あたかもリポジトリが壊れたように見えてしまいます。Gitは難しいと言われますが、そういう感想を持つ人はGitのモデルを理解していない事が多いようです。 今回はGitを構成する中心モデルと、基的なコマンドを実行した時のオブジェクト関係を解説します。 基概念 Gitの基概念は大きく2つにわかれます。 GitObject Reference GitObjectはGitで管理するオブジェクトです。CommitなどがGitObjectです。Gitリポジトリである.gitを開くとobjects配下にあるファイルがGitObjectです。GitObjectはそのコンテンツをハッシュ化した文字列を元に、先頭2文字で配置フォルダ、残りの文

    Gitのデータモデル
    czblue
    czblue 2015/07/21
  • Gitでやらかさないための事前予防策 - Qiita

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

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

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

    Windows環境でGitを高速化する - Qiita
    czblue
    czblue 2015/03/16
  • GitLab & web hooks & git-flowで実現する企業向けgit環境の構築

    1. GitLab & Web Hooks & git-flowで実現する 企業向けGit環境の構築 CROOZ株式会社 技術統括部 鈴木 優一 © CROOZ,Inc. 1 2. Gitが開発者もたらした恩恵 『ブランチ管理が容易 & ブランチ作成が高速』 Subversionと比較すると… ・ローカルにリポジトリを持っているため自由度が高い。 ⇒ サーバ側を気にせずブランチを切ったり、 ワークスペースを切り替えたりできる。 ⇒ ワークスペースの切り替えが超高速 ・trunk、branchesごとに再チェックアウトが不要 etc … Git が開発者にもたらした恩恵は非常に大きい! 一方、企業で開発する場合にGitだとつらい部分もある。 © CROOZ,Inc. 2 3. 企業でGitを利用する場合にツラいこと 1.Bareリポジトリが複数サーバに分散しがちになる。 展開の容易さから、

    GitLab & web hooks & git-flowで実現する企業向けgit環境の構築
    czblue
    czblue 2015/02/23
  • バージョン管理したくない作業用スクリプトは「,」ディレクトリに入れるといい - 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
    czblue
    czblue 2014/10/28
  • SourceTreeの使い方 | コミットの取り消し方法まとめ(amend, reset, revert, cherry-pick) - ICS MEDIA

    SourceTreeの使い方 | コミットの取り消し方法まとめ(amend, reset, revert, cherry-pick) 高機能Gitクライアントの「SourceTreeソースツリー」(無料)や「Tower」(有償)は導入しやすく機能が豊富なため人気があります。Gitにはコミットやプッシュだけではなくさまざまな機能が存在するので、使いこなすことで効率よく開発を進めていけるでしょう。記事ではGitを使う上で必須となるcommitコミットの取り消し方法をテーマに、次の4つの機能を解説します。 コミットの修正・やり直し(amend) コミットの取り消し(reset) コミットの打ち消し(revert) 別ブランチからのコミットの取り込み(cherry-pick) 記事では次の機能をSourceTreeとTowerの両方のソフトウェアの操作方法として解説します。 コミットの修正・や

    SourceTreeの使い方 | コミットの取り消し方法まとめ(amend, reset, revert, cherry-pick) - ICS MEDIA
    czblue
    czblue 2014/10/20
  • git-ignoreというコマンドを書いた話 - ( ꒪⌓꒪) ゆるよろ日記

    git-ignore add みたいのが欲しい— azu (@azu_re) August 24, 2014 ちょろっと書けそうだったので書いた。 yuroyoro/git-ignore · GitHub Demo Installation PATH通った場所においてくれ curl -sL https://raw.githubusercontent.com/yuroyoro/git-ignore/master/git-ignore > ~/bin/git-ignore Examples `git ignore add "pattern"`で、.gitignoreへ追加する。 $ git ignore add '*.log' .gitignoreから削除するには、`git ignore remove "pattern"`を実行する。 $ git ignore remove '*.log' a

    git-ignoreというコマンドを書いた話 - ( ꒪⌓꒪) ゆるよろ日記
    czblue
    czblue 2014/08/26
  • YappoLogs: xlsx ファイルを git diff しやすくする為の天才的な wrapper script を書いた

    皆さんはプロジェクトのリソースとしてエクセルの xlsx ファイルを使う事があると思います。 何てったって事務職の人ですら楽々使えるスーパー優れた UI なので、 web の管理画面とかを作り込むよりもエクセルでシート作ってもらってしまった方が早いケースも多いんです。現実の世界では。 で、普通の人は TSV にするだの CSV にしてもらうだのすると思うんですが、一方的にデータ貰うだけなら良いんだけど、相手とやり取りする時にはどうしても xlsx ファイル経由とかにしないと相手がこまる!やっぱりエンジニアのエは優しさのエだから相手に優しくしないとだめです。 で、 xslx ファイルでエンジニア以外の人とデータやり取りするとやっぱり、バージョン管理したくなるのが人情です。 でも xslx ファイルはバイナリファイルなので git diff とかが残念です。。。 って事で作っちゃいました。 h

    czblue
    czblue 2014/06/20
  • Gitonomy – PHP製のGit管理サーバ

    おお、これは企業で使えそうですよ! 企業によっては外部にソースコードを預けられないため、自社でGitサーバを構えているところも多いでしょう。しかしそうなると管理画面が欲しくなります。GitHubの管理画面は優秀で、ああいったWebブラウザ上でリポジトリの情報を見たいと思うはずです。 そこで使ってみて欲しいのがGitonomyです。デザインの格好いい、Gitリポジトリマネージャです。 Gitonomyの使い方 GitonomyはPHP + Symfonyの組み合わせで作られていて、Webブラウザ上でGitリポジトリの操作が一通りできるようになっています。ユーザはプロジェクト単位にグループに入り、そこで権限管理される仕組みです。 ソーシャル機能はありませんが、企業ユースであれば十分ではないでしょうか。社内でGitサーバを立てている場合はぜひ導入を検討してみてください。 GitonomyはPHP

    Gitonomy – PHP製のGit管理サーバ
    czblue
    czblue 2014/04/04
  • LINE Serverの開発とリリースプロセス « LINE Engineers' Blog

    皆さんお元気ですか?LINEサーバー開発室でサーバ開発を担当している崔珉秀と申します。 この記事ではLINEのサーバーの開発とリリースプロセスについて述べたいと思います。 LINEの開発者はどんな形で開発しているのか、サービスに変更事項をどのように適用しているのか、お互い協力してより良い開発環境を得るためにどんな努力をしているのかをお伝えする機会になったらいいなと思います。 ここで述べるリリースプロセスは、LINEのサーバ開発の流れとソース管理システムの運用方法、そして番環境に変更事項を適用するまでの過程です。 LINEのServer Applicationはその役割とシステムの構成によって複数のServer Applicationに分かれて構成されています。 例えばNetwork通信及びProtocolなどを担当するApplication、messagingやsocial graph

    LINE Serverの開発とリリースプロセス « LINE Engineers' Blog
  • IDEA * IDEA

    ドットインストール代表のライフハックブログ

    IDEA * IDEA
    czblue
    czblue 2014/03/23
  • 空コミット便利!git commit --allow-emptyでgitを使った開発フローを改善 - fukajun - DeepValley -

    何か? git commitのオプション--allow-emptyご存知でしょうか? これは、オプションの名前の通り空のコミットの作成を許可するオプションです。 通常変更がないとコミットが作れないようになってるので 空コミットを作るにはこのオプションを指定する必要があります。 add(もしくはrm)もしない(stageに何も載せない)で commitしたときの注意文には登場するので知ってましたが使ってませんでした。 最近、開発フローの中で使い道を思いついて使うようになったので紹介です。 その1 空Pull Request作れる プルリクって、基準になるブランチから変更されたコミットがないと作れないと思ってます。 でも、変更はないんだけどプルリクのcommentに変更の「概要」「目的」「ビジネスインパクト」「どの数値が改善するのか」など色々さきに書いておきたいこととかありますね。 考えてる内

    czblue
    czblue 2014/02/23
  • git オブジェクトの表示 - elm200 の日記(旧はてなダイアリー)

    最近、ふたたび Ruby on Rails を使って仕事をしている。Rails 4 を使っているのだが、この数年での Rails 界隈の長足の進歩には驚かされることばかり。昔、不満だった点がことごとく改善されて、当に良くなっている。IT は、この停滞した世界にあって、唯一、真に猛スピードで進歩を遂げている分野なのかもしれない(これが社会を大きく変えていくだろうことを妄想すると頭がクラクラしてくるわけだが)。 いまの仕事仲間は、gitGitHub を当たり前に使いこなしている。正直、個人的にちまちま git を使っていただけの私は大いにめんくらった。ブランチだのプルリクエストだのいろいろ言われても、わけわからん、というレベルであった(当に仕事仲間には申し訳ない…)。 で、仕方ないので猛勉強した。 最初は、 サルでもわかるGit入門 〜バージョン管理を使いこなそう〜【プロジェクト管理

    git オブジェクトの表示 - elm200 の日記(旧はてなダイアリー)
    czblue
    czblue 2014/02/22
  • gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita

    git diffを見やすくする git diff --color-words で差分を小さく表示する 通常のgit diffは行単位なので、例えば変数名を一括変更した場合見づらいです。 --color-wordsを指定すると記号やスペースで区切られた単語単位でのdiffを表示できます。gitの設定は不要です。 より細かな表示のカスタマイズも可能です。man git-diffで--word-diffを検索してみてください。 ※ただし、変更が複雑な場合は、通常のgit diffのほうが見やすいこともあります。 .gitattributesを設置してもっと小さく表示する .gitattributesファイルを設置することで、言語文法に基づいて変数名、関数名といった単位でdiffを表示できます ファイル設置後にgit diff --color-wordsとすると、下記のようにさらに小さく表示できま

    gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita
    czblue
    czblue 2014/02/12
  • git-flowでもgithub flowでもない、Git本家推奨のワークフロー

    このドキュメントは git.git (訳注: Gitプロジェクトのgitリポジトリ) それ自身で使われているワークフローの要素を書きとめ、 それを使いたいと思わせることを意図しています。 多くのアイデアが一般に適用できますが、 より少人数が参加する小さなプロジェクトで 完全なワークフローを必要とするのは稀です。 私たちはクイックリファレンスのためにひとまとまりの ルール をとりまとめ、 文章でそれぞれのルールへの動機を与えます。 言葉通りにとらないようにしてください; 重視すべきなのは、この文書のようなmanページの記述よりも あなたがそうすべき理由の方です。

    czblue
    czblue 2014/02/02
  • Web制作者のための実践Git | 第1回 適切な履歴の作り方

    上記の例の場合、変更した箇所が近いため同じhunk(変更の塊)として表示されています。ですので、hunkをさらに分割する必要があります。そのためにはsを選択します。そうすると次のような表示になります。 Split into 2 hunks. @@ -1,5 +1,5 @@ <ul> <li><a href="/">Home</a></li> - <li><a href="/about.html">About</a> + <li><a href="/about.html">About</a></li> <li><a href="/help.html">Help</a></li> </ul> Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? 変更が分割されて閉じタグ忘れだけの変更が表示されています。ここでyを押してこの変更をステージングします。すると次は以下の表

    Web制作者のための実践Git | 第1回 適切な履歴の作り方
    czblue
    czblue 2014/01/10
  • イケててヤバいGit入門 | GREE Engineering

    この投稿はGREE Advent Calendar 2013 20日目の記事です。 プロデューサーの皆さん、みりっほー。進捗どうですか?私はダメです。ごめんなさい。(´・ω・`) WG事業部の二宮です。今日はアイマス駆動開発の話をしようかと思ったのですが、急遽Gitの使い方の話に変更しました(Inspired by 堀口先生)。 アイマス駆動開発の話が気になる方は、是非一緒に飲みに行きましょうw ※この記事では、ツールにGitGitHubを利用することを想定しております。 Gitをスマートに使いたい グリーでは、基的にA successful Git branching model(有志の方による日語訳)にのっとって開発しています。 Gitについて基的な考え方の部分は堀口さんの記事で言及されているので、私は現場で具体的にどのような使い方をしているのかについて書きたいと思います。 と

    イケててヤバいGit入門 | GREE Engineering
    czblue
    czblue 2013/12/23
  • Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば

    Git に同梱されている contrib/diff-highlight を使います。 あとは README に書いてあることの引き写しですが、PATH の通ったディレクトリに置いて、~/.gitconfig に以下のように設定を書く。 [pager] log = diff-highlight | less show = diff-highlight | less diff = diff-highlight | less すると、対応するコマンドの出力がこんな風になります。 行レベルの diff に加えて、単語レベルでの diff もハイライトされ、GitHub での diff のように描画されました。 組み込みのオプションで --color-words というのがありますが、こちらを使うと行レベルの diff 情報が失われるので、少し不便だったわけですね。とすべて README に書いてあ

    Git の diff を美しく表示するために必要なたった 1 つの設定 #git - 詩と創作・思索のひろば
    czblue
    czblue 2013/11/27
  • ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社

    ungitはnode.jsで動くグラフィカルなgitクライアントです Learn Git Branchingみたいな直感的なGUIで操作できるので とても分かりやすいです インストール 今回はnvmを使用してnode.jsを入れます $ git clone git://github.com/creationix/nvm.git ~/.nvm $ source ~/.nvm/nvm.sh $ nvm install v0.10.22 $ npm install -g ungit $ nvm use v0.10.22 ログイン時も有効にしたい場合は.bashrcに以下のように書いておきます if &#91; -d $HOME/.nvm/ &#93; then source ~/.nvm/nvm.sh nvm use v0.10.22 &#62; /dev/null fi 起動 以下のコマンドで

    ぐにゅぐにゅ動く直感的なGitクライアント ungit|TechRacho by BPS株式会社
    czblue
    czblue 2013/11/25
  • index - やる夫で学ぶ gitcore-tutorial

    やる夫で学ぶ gitcore-tutorial Introduction Creating a git repository Populating a git repository Commiting a git state Making a change Inspecting changes Tagging a version Copying repositories Creating a new branch Merging two branches Merging external work TBD

    czblue
    czblue 2013/11/25