タグ

Gitに関するhatz48のブックマーク (41)

  • gitのcommit objectの中身 - はこべにっき ♨

    commitって結局なんなの?というはなしです.commitの中身を表示してデータの実体を見てみます. あわせて読みたい: Git for Computer Scientists 適当なcommitのobject id ( = SHA1 )を得るためにgit show-refでmasterブランチのHEAD commitのobject idを得ます. $ git show-ref refs/heads/master # master の HEAD の commit の obeject id を表示 216640790e88d6fd794a96fd1a7c81dd2ad86981 refs/heads/master 以下のようにして,git cat-file でcommitの内容を表示できます.treeにはcommitが発生した時点でのファイルツリーを再現するための情報が入っています.par

    gitのcommit objectの中身 - はこべにっき ♨
    hatz48
    hatz48 2019/12/05
  • git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば

    git fetch の裏側でどんな通信が行われてリモートリポジトリの内容が取得できるのか調べたのでまとめる。もともとは git の HTTP や SSH といったプロトコルでどのように実現されているか、というところに興味があった。Git v2.7.1 を基にしている。 事前準備 pack プロトコル pkt-line フォーマット Reference discovery Packfile negotiation Packfile の送受信 packfile への圧縮・packfile からの展開 各種トランスポートの実装 file トランスポート ssh トランスポート git トランスポート http(s) トランスポート まとめ 参考資料 事前準備 手を動かしてプロトコルを理解できるよう、gist の小さなリポジトリ を使う。適当なディレクトリ下に bare リポジトリとして clon

    git fetch の裏側では何が起こっているか - 詩と創作・思索のひろば
    hatz48
    hatz48 2016/03/10
  • Gitの便利な-pオプション四兄弟 - エンジニアをリングする

    この記事はGit Advent Calendar 2014の6日目の記事です! (更新がお昼になってしまいました、ごめんなさい><) みなさん! Gitの-pオプション使ってますか? 今日は便利な-pオプションを使えるコマンドと、使いどころをご紹介します! 紹介する内容 git add -p git stash -p git log -p git stash show -p git checkout -p git add -p きっとこれが一番有名ですね! 追加したい変更を、ファイル単位ではなく差分のブロックごとに追加していくことができます。 Git管理されているindex.htmlに、以下の修正を加えたとしましょう。 ヘッダーのメニューの文字を小文字から大文字に変更 Contactに新しいリンクを追加 このまま両方まとめてコミットしてコミットメッセージに両方の内容を書いておくというのもひ

    Gitの便利な-pオプション四兄弟 - エンジニアをリングする
    hatz48
    hatz48 2014/12/08
    便利だ
  • libgit2

    libgit2 is a portable, pure C implementation of the Git core methods provided as a re-entrant linkable library with a solid API, allowing you to write native speed custom Git applications in any language that supports C bindings. Cross-Platform Linux, macOS, iOS, and Windows are fully tested and supported. Portable C Written in a well-supported subset of C99. Builds in GCC, Clang and MSVC. Minimal

    hatz48
    hatz48 2014/09/03
  • tigでgitをもっと便利に! addやcommitも - Qiita

    皆さん、tigコマンドを活用していますか? tigは、コンソール上で使えるgitブラウザです。実はずっと、ただのきれいなgit logだと思っていたのですが、当はそんなことはありません。かなり使えるやつなのです。 インストール ソースコード: https://github.com/jonas/tig インストール方法: https://github.com/jonas/tig/blob/master/INSTALL.adoc この辺りを参考にしてみてください。詳細は割愛します。 基の使い方 この状態の差分を扱っていきます。いつものこれだとこんな感じ。 git logが素敵にビジュアライズされてます。この画面をmain viewといいます。 ここでエンターを押すと、下半分に差分の詳細(diff view)が表示されます。 下矢印で、Unstaged changesの差分を見てみるとこんな

    tigでgitをもっと便利に! addやcommitも - Qiita
    hatz48
    hatz48 2014/03/05
  • ファイルシステムとしての Git - 言語ゲーム

    Git のコマンド体系は全く歴史に学ばず後世に禍根を残す酷いデザインだが、どういうわけか内部構造は大変素晴らしい。特にファイル構造を一旦キーバリュー式データストアに保存するというのは是非参考にしたいアイデアなので調べてみました。 Git 内部データストアの基機能は、ファイル名を使わず中身だけを保存する事です。ファイル名が無くて後からどうやって保存した中身を取り出すかというと、保存時に SHA-1 という文字列が発行されるのでそれを鍵に取り出します。それでは試しにやってみます。まず準備として新しい Git レポジトリを作ります。 $ mkdir test $ cd test $ git init Initialized empty Git repository in /Users/takashi/tmp/test/.git/ blob 次に、適当な文字列を保存します。 $ echo '適当

    ファイルシステムとしての Git - 言語ゲーム
    hatz48
    hatz48 2014/01/06
  • 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 - 詩と創作・思索のひろば
    hatz48
    hatz48 2013/11/27
  • Git - Book

    The entire Pro Git book, written by Scott Chacon and Ben Straub and published by Apress, is available here. All content is licensed under the Creative Commons Attribution Non Commercial Share Alike 3.0 license. Print versions of the book are available on Amazon.com. The version found here has been updated with corrections and additions from hundreds of contributors. If you see an error or have a s

    hatz48
    hatz48 2012/12/21
  • こわくない Git

    「マージがなんとなく怖い」「リベースするなって怒られて怖い」「エラーが出て怖い」 Git 入門者にありがちな「Git 怖い」を解消するため、Git のお仕事(コミット、ブランチ、マージ、リベース)について解説します。Read less

    こわくない Git
    hatz48
    hatz48 2012/11/23
  • Chapter 8. サブモジュール

    大きなプロジェクトは自己完結したより小さいプロジェクトを含む場合があります。 例えば、組み込みLinuxディストリビュションのソースツリーは ディストリビュション内にローカルに変更を加えられたソフトウェアのピースが 含まれています;ムービープレーヤーは解凍ライブラリの特定のバージョンで ビルドできるようにする必要があるかもしれません;幾つかの独立したプログラムは 同じビルドスクリプトを共有しているかもしれません。 集中型のリビジョン管理システムでは、1つのリポジトリ内に各モジュールを含む ことによってこれを実現します。開発者は全てのモジュールあるいは必要なモジュール だけをチェックアウトすることができます。API や翻訳の移動や更新といった 幾つかのモジュールにまたがったファイルを1回のコミットで変更することができます。 Gitは部分的なチェックアウトを許可していない為、Git の複製アプ

    hatz48
    hatz48 2012/09/12
  • 復習 Git: ファイルやサブモジュールを削除する.

    復習 Git: ファイルやサブモジュールを削除する. Git リポジトリのファイルを削除して追跡対象から外すには git rm を使う. しかし,サブモジュールを削除する場合には単に git rm しただけでは削除 できないので注意が必要だ. ファイルの削除ファイルを削除するには, $ git rm FILE とすればよい.このコマンドは, 作業ディレクトリのファイルを削除削除したことのステージを同時に行なう.作業ディレクトリのファイルを残して削除したことだけをス テージしたいときには, $ git rm --cached FILE とすればよい. なお,FILE には glob パターンを使える.たとえば, $ git rm \*~ とすると, Emacs のバックアップファイルを全て削除する. glob パタンを \ でエスケープしているのは, Git が自前でファイル名展開をする の

    復習 Git: ファイルやサブモジュールを削除する.
    hatz48
    hatz48 2012/09/05
  • ゼロからのGitLabインストール手順(CentOS6.2) - someone’s notebook

    CI, Linux | 23:08 | GitRuby環境周りの勉強で、GitHubクローンのGitLabを入れてみました。 環境 $ cat /etc/redhat-release CentOS release 6.2 (Final) $ uname -a Linux oklahomaok.example.com 2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux 準備epelをリポジトリに追加します。Rubyやgitolite、GitLabで使用する怒濤のパッケージ群を入れます。精査していないので、ちょっと無駄なものが多いかもです。 $ rpm -Uvh http://download.fedoraproject.org/pub/epel/6/x86

    hatz48
    hatz48 2012/06/26
  • 怠惰にgitを使うためのシェル活用術、またはgst一族 - Qiita

    Git Advent Calendar / Jun. 6/12 担当@T_Hashです。 明日も仕事でだるいのですが、怠惰はプログラマの美徳といいます。というわけで僕が日々の仕事で怠惰にgitを使うための設定を共有したいと思います。 zsh ↓を参考にした設定を.zshrcに記述して、右プロンプトにブランチ名とステータスを表示させています。コマンドを叩かずに状態が見えて非常に便利です。 git のブランチ名 と作業状態 を zsh の右プロンプトに表示+ status に応じて色もつけてみた 緑だとクリーンな状態、赤だと未コミットの変更があります。「緑が正常な状態、緑に戻って来たら一段落してコーヒー飲もう」とか考えながら作業をしてます。 あと、zshはgitのコマンドも補完してくれるので地味に重宝します。 gst: git status git statusは常に叩くクセを付けた方がいいと

    怠惰にgitを使うためのシェル活用術、またはgst一族 - Qiita
    hatz48
    hatz48 2012/06/19
  • 図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ

    git-merge の--ff, --no-ff, --squashの違いをまとめてみた。 git helpから引用 まずは、git helpを読みましょう git merge --helpから引用(抜粋) NAME git-merge - Join two or more development histories together SYNOPSIS git merge [-n] [--stat] [--no-commit] [--squash] [-s <strategy>] [-X <strategy-option>] [--[no-]rerere-autoupdate] [-m <msg>] <commit>... git merge <msg> HEAD <commit>... git merge --abort OPTIONS --ff, --no-ff Do not gene

    図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ
    hatz48
    hatz48 2012/05/18
  • イラストでわかる!git入門の入門

    こんにちは、アシアルの志田です。 社内でもgitが浸透し、皆バージョン管理といえばgitだよね、という空気になってきました。 ですが、これまでバージョン管理システムを使ったことがない人にオススメしても、 「gitて…まあ…そりゃ…ねえ、いつかやらないといけないけど…」 「ギット?ジット?俺はgiはジと読む派なので、gitは胡散臭いと思う」 「そもそもバージョン管理して何が嬉しいの?なんか難しそうでいやだ」 というような反応ばかりでした。 きっとみんな、gitって難しくて訳のわからんもんだと思っているのでは?と思い、 今回はgit入門の入門、gitってなんだ?というところから、簡単にgitを使う際の流れについてご説明します。 ちょっと不安を覚えるようなイラストがついていますので、頑張って読んでください。 バージョン管理ってなに? プログラムを書いていて、こんなことありませんか?私はあります…

    イラストでわかる!git入門の入門
  • git commitをやり直しする&取り消しする(「get commit --amend」と「git reset」) - hogehoge foobar Blog Style Beta

    git commitを実行あとでコミットをやり直したり、コミット自体を取り消す方法です。 直前にしたコミットをやり直す(git commit --amend) 直前にしたコミットをやり直す場合、「git commit --amend」を使用します。 例えば、直前のコミットログが以下のような状態だったとします。 実は直前のコミットに含めるべきであった「hoge.txt」が含まれていませんでした。 コミットログ(git commit --amend 実行前) $ git log commit cca638b48b4c8be7ad5432f7882497534b04e2b4 Author: mrgoofy <hogehoge@example.com> Date: Wed Sep 8 23:03:57 2010 +0900 2nd Commit.-> New Add File : bar.txtこ

    git commitをやり直しする&取り消しする(「get commit --amend」と「git reset」) - hogehoge foobar Blog Style Beta
    hatz48
    hatz48 2012/05/09
  • Git ブランチ操作のまとめ

    個人的なメモ その2 その1は [2010-04-29-1] にあるよ。 Git では、たった一日の作業でもブランチを作ることが良くある。基ランチは修正が終わったら master に merge して削除、つまり使い捨て。 別な作業が入ったら、master から新たにブランチを作る。 cvs とか svn だと、作業単位毎にディレクトリを掘って cvs checkout と かしていたけど、Git はこれをブランチ操作のみでできる点が超便利。 ただ、他に違わず、ブランチ操作も複雑なのでメモメモ。 (1) ローカルブランチの確認 % git branch (2) リモートブランチの確認 % git branch -r (1) + (2) % git branch -a (3) ローカルブランチ bar の作成 % git branch bar (4) ローカルブランチ bar への切り

    hatz48
    hatz48 2012/05/09
  • Git のブランチ機能 - ブランチとマージの基本

    1. 使い始める 1.1 バージョン管理に関して 1.2 Git略史 1.3 Gitの基 1.4 コマンドライン 1.5 Gitのインストール 1.6 最初のGitの構成 1.7 ヘルプを見る 1.8 まとめ 2. Git の基 2.1 Git リポジトリの取得 2.2 変更内容のリポジトリへの記録 2.3 コミット履歴の閲覧 2.4 作業のやり直し 2.5 リモートでの作業 2.6 タグ 2.7 Git エイリアス 2.8 まとめ 3. Git のブランチ機能 3.1 ブランチとは 3.2 ブランチとマージの基 3.3 ブランチの管理 3.4 ブランチでの作業の流れ 3.5 リモートブランチ 3.6 リベース 3.7 まとめ 4. Gitサーバー 4.1 プロトコル 4.2 サーバー用の Git の取得 4.3 SSH 公開鍵の作成 4.4 サーバーのセットアップ 4.5 Git

    hatz48
    hatz48 2012/05/08
  • GitHub - hatena/Git-for-Designers: はてなのデザイナ向けの Git 入門ドキュメントです。

    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 - hatena/Git-for-Designers: はてなのデザイナ向けの Git 入門ドキュメントです。
    hatz48
    hatz48 2012/04/27
  • transitive.info - Home

    Recent Entries 2023/11/04 WZR-600DHP2 への OpenWRT のインストールと設定 2023/11/02 scrcpy で Android の画面を Ubuntu に表示する 2023/10/29 Ubuntu 24.04 で PT3 を Mirakurun と EPGStation で使う 2023/07/15 LIFEBOOK WU-X/H1 での Ubuntu 23.04 と Windows 11 のデュアルブートと設定 2022/11/22 Ubuntu 22.04 に Mattermost をインストールする 2022/09/04 WZR-HP-AG300H の OpenWRT の更新と設定 ページ一覧へ Archives 2023 (4) 2022 (7) 2021 (5) 2020 (5) 2019 (6) 2018 (7) 2017 (8

    hatz48
    hatz48 2012/04/24