タグ

Gitに関するlibero18のブックマーク (244)

  • GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog

    自分が書いたコードに署名をしておくことはプログラマの常識であり基動作です(かくいう私もメールは署名してないけど…)。なので私も一人前のプログラマになるべく、自分が書いたコードに署名をするようにしてみた。 GPG 鍵を作ったり準備したり GnuPGのインストール@MacOS $ sudo port install gnupg 鍵をつくります。有効期限は2年間。もし秘密鍵が漏れた場合でも、2年経てばほとぼりが冷める。 $ gpg --gen-key gpg (GnuPG) 1.4.20; Copyright (C) 2015 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent p

    GPG鍵を作って運用し、Git(hub)やMercurialで自分が書いたコードに署名をする - kuenishi's blog
    libero18
    libero18 2016/08/17
  • ほげめも: etckeeper で多数のホストの /etc を集約・共有する

    etckeeper で多数のホストの /etc を集約・共有する etckeeper を使うと /etc の内容と変更履歴を git などのバージョン管理システム (VCS) で手軽に管理できますが、素の etckeeper には /etc の変更をローカルのリポジトリにコミットする機能しかなく、git のような分散 VCS の特徴を生かすことができません。 しかしながら etckeeper と git の組み合わせで、リモートリポジトリとブランチをうまく設定し一工夫を加えることで、多数のホストの /etc の変更をひとつのリポジトリに集約し共有することが簡単にできるようになります。 準備 まずは etckeepr を git で動かしてください。 Debian squeeze では apt-get install etckeeper とするだけで gitetckeeper がインス

  • gitでremoteにあるtag一覧を確認する - 備忘録 〜プログラミング〜

    アプリをリリースするとき、アプリのバージョン毎に、tagをつけて管理しています。 いつものように $ git tag release_1_3_1 $ git push —tagsこのようにタグをつけて、リモートにプッシュしていたのですが、ふとローカルにあるtag一覧はどうやって確認するのだろうと思ったので調べてみました。 結論としては、こちらのコマンドを $ git ls-remote --tagsls-remoteというのは、リモートリポジトリの一覧を出力するコマンドのようです。 コミットIDも一緒に出力されるので、便利ですね。 今まで、push前に $ git pull --tagsなどして確認したりしていたのですが、今後はこちらで確認しようと思っています。 他にいい方法があるのかもしれませんが、とりあえず解決 git-ls-remote(1)

    gitでremoteにあるtag一覧を確認する - 備忘録 〜プログラミング〜
    libero18
    libero18 2015/09/28
  • git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc

    はじめに こんにちは、クレイの亀井です。ここ最近一気に気温が上がりましたね。顔に重点的に汗をかくタイプの私には憂な季節がやってまいりました さて、今月正式リリースしました(!) DocBase プロジェクトではクレイ外部のデザイナーの方と一緒に開発しています。SourceTree で Git を使っている方で、軽いデザイン修正などは弊社の Rails プロジェクトに直接手を加えてプルリクエストを送ってくれます。 こちらのデザイナーさんに「プルリクエストを送る際は、作業ブランチで git pull --rebase origin master してから送ってもらえますか?」とお願いすると「pull はわかるんですけど、この --rebase ってなんですか?これつけると何が変わるんですか?」と質問がきたのです。 作業ブランチで git pull --rebase origin master

    git pull と git pull --rebase の違いって?図を交えて説明します! | KRAY Inc
  • Gitのデータモデル

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

    Gitのデータモデル
    libero18
    libero18 2015/07/17
  • Git Large File Storage

    An open source Git extension for versioning large files Git Large File Storage (LFS) replaces large files such as audio samples, videos, datasets, and graphics with text pointers inside Git, while storing the file contents on a remote server like GitHub.com or GitHub Enterprise. Getting Started Download and install the Git command line extension. Once downloaded and installed, set up Git LFS for y

    Git Large File Storage
  • プルリクエストをより使いこなす | POSTD

    Gitを使用している人であれば、プルリクエストには馴染みがあるでしょう。これは、分散バージョン管理システムが世に出始めてから、何らかの形で使われています。BitbucketやGitHubのように凝ったWebユーザインターフェイスが構築される前は、プルリクエストは単純に電子メールベースで行われており、Aliceのリポジトリから変更をプルするように依頼していました。プルリクエストを受けた側がこの変更を妥当だと判断すれば、いくつかのコマンドを実行しmasterブランチに変更をプルするという流れです。 $ git remote add alice git://bitbucket.org/alice/bleak.git $ git checkout master $ git pull alice master もちろん、手あたり次第Aliceの変更をmasterにプルすることは、 得策 ではありませ

    プルリクエストをより使いこなす | POSTD
  • Gitでブランチを統合する方法 — 裏紙

    #!/bin/sh rm -fr .git *.txt .gitignore git init echo init.sh>.gitignore && git add .gitignore && git commit -m "Initial Commit" echo b>b.txt && git add b.txt && git commit -m "master 1" git branch other echo c>c.txt && git add c.txt && git commit -m "master 2" echo d>d.txt && git add d.txt && git commit -m "master 3" git checkout other echo e>e.txt && git add e.txt && git commit -m "other 1" echo

    Gitでブランチを統合する方法 — 裏紙
    libero18
    libero18 2015/01/27
  • git subtreeの練習

    Gitのサブモジュールでは面倒そうな、頻繁に更新される別のリポジトリを取り込む方法としてサブツリーマージを行うラッパーであるgit subtreeコマンドを使う練習を始めた。どちらかというと「参照する」要素の強いサブモジュールに対して、サブツリーは「切り分ける」や「取り込む」という感じなんじゃないかと理解している。全般的に間違ってそうで怖い。 「切り分ける」、つまりリポジトリのサブディレクトリを別のリポジトリにしたい場合は、単純なケースだと親にあたる方で.gitignoreや.git/info/excludeを使ってサブディレクトリを除外してやれば良い。でもこの場合、両方のリポジトリで関連した変更がある時にそれぞれのリポジトリでコミットしてやらないとならないので面倒くさい。 「取り込む」場合はサブモジュールが基なわけだけど、他で作業して戻ってきてたりする必要があるし、サブモジュールの更新

    git subtreeの練習
  • GitLab flowから学ぶワークフローの実践 | POSTD

    Gitによるバージョン管理では、従来のSVNなどよりずっと簡単にブランチングやマージができます。さまざまなブランチ戦略やワークフローが可能であり、以前のシステムに比べるとほとんど全てが改善されたと言えるでしょう。しかしGitを利用する多くの組織はワークフローの問題に直面します。明確な定義がなく複雑で、Issue Tracking Systemと統合されていないからです。そこで、明確に定義された最良の実践的方法としてのGitLab flowを提案したいと思います。issue trackingには feature driven development と feature branches を組み合わせます。 他のバージョン管理システムからGitに移行する際によく耳にすることは、効果的なワークフローの開発が難しいということです。この記事ではGitワークフローとIssue Tracking Sys

    GitLab flowから学ぶワークフローの実践 | POSTD
    libero18
    libero18 2014/10/23
  • Githubの中の人に聞いた、commit識別番号を人間でも扱いやすくする3つの工夫 - not good but great

    大阪で行われた「GitHub トレーニングチームから学ぶ GitGitHubの基礎」というセミナーに参加してきた。折角なので質問をした。質問をした背景、その回答を書いてみた。 commit識別番号とは? gitでコミットしたときに、つけられる番号。グローバルで一意のため英数字の羅列になっている。 ログを出力すると、識別番号を見ることができる。 $git log commit 0162e65afed22b9fbd4ef915d77f9f67a223f7ec Author: naoyashiga Date: Sun Jun 2 18:57:30 2013 +0900 change README.md commit 57228b29d976075bdf47eb9ea7ead44c8b867632 Author: naoyashiga Date: Sun Jun 2 18:55:15 2013

    Githubの中の人に聞いた、commit識別番号を人間でも扱いやすくする3つの工夫 - not good but great
    libero18
    libero18 2014/08/14
  • gitで新しくブランチを切るベストプラクティス - 時計を壊せ

    普段から普通にやっている方法です。 git fetch git checkout -b $BRANCH_NAME origin/master git push -u origin $BRANCH_NAMEgit fetchでoriginを最新にして、origin/masterからブランチを切ります。 これで、プロジェクトの最新の状態からbranchを切る事が出来ます。 現在どのbranchに居るかを気にせずとも、branchを切る元を間違える事がないので安心です。 (例えばうっかり関係ないtopic branchから切ってしまう。といったことを気にしなくて良くなります。) また、git push -u origin $BRANCH_NAMEすることにより、 リモートブランチがupstreamとして紐付く為、いちいちgit pull origin $BRANCH_NAMEとかしなくて良くなり

    gitで新しくブランチを切るベストプラクティス - 時計を壊せ
    libero18
    libero18 2014/05/31
  • 2014年、春のGit事情 - fujimuradaisuke's blog

    なんとなく最近どんな感じでGitを使っているか、適当にリストアップしてみた。 よく使うやつ git status git status --branch --short にしている。変更されたファイルが出る。とりあえず何をしたかざっくり把握する用。sにエイリアスしている。一日100回くらい実行しているのではないか。 git diff 特にオプションは指定していない。何をしたかしっかり把握する用。dにエイリアスしている。一日50回くらい実行しているのではないか。 git grep バージョン管理しているファイルから渡した単語を含む行を検索、表示。関数の検索などあらゆる場面で超便利。オプションは --line-number --show-function --color --heading --break がオススメ。 git ls-files バージョン管理しているファイルのファイルパスを表

    2014年、春のGit事情 - fujimuradaisuke's blog
    libero18
    libero18 2014/04/21
  • 空コミット便利!git commit --allow-emptyでgitを使った開発フローを改善 - fukajun - DeepValley -

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

  • Writing good commit messages

    Good commit messages serve at least three important purposes: To speed up the reviewing process. To help us write a good release note. To help the future maintainers of Erlang/OTP (it could be you!), say five years into the future, to find out why a particular change was made to the code or why a specific feature was added. Structure your commit message like this: From: https://git-scm.com/book/ch

    Writing good commit messages
    libero18
    libero18 2014/04/08
  • 「開発効率をUPする Git逆引き入門」を執筆しました - matsukaz's blog

    昨年は社内を始め、いろんなところでGitの勉強会をさせて頂きました。 以下の資料は、はてブ数も700を超えてホッテントリー入り。ありがとうございます!m(_ _)m いつやるの?Git入門 v1.1.0 from Masakazu Matsushita この資料のおかげで、slideshareで2013年にPVを集めたアカウントの上位1%に入ってたみたい!ヽ(=´▽`=)ノ Masakazu's year 2013 on SlideShare これがきっかけでGitを出版することになりまして、昨年秋ぐらいから仲間を募って書き始めて、ようやく発売となりました!長かった・・・。自分はChapter 1やその他のChapterの一部の執筆と、全ての図の作成や画面キャプチャなどをやりました。あとは共著だとみんなバラバラな粒度や書き方になりがちだったので、他のメンバーが書いてくれた内容のチェックと

    「開発効率をUPする Git逆引き入門」を執筆しました - matsukaz's blog
  • hub · an extension to command-line git

    hub is an extension to command-line git that helps you do everyday GitHub tasks without ever leaving the terminal. Read the full documentation: man hub, or visit this project on GitHub. # install with Homebrew (macOS, Linux) # or see other installation options brew install hub hub version git version 2.25.0 hub version 2.14.2 # ← it works! # indicate that you prefer HTTPS to SSH git clone URLs git

  • 【git】git pushがrejectされたときの対応方法 at softelメモ

    問題 git push しようとしたら、rejectされた。どうしよう。 C:\tmp\gittest\testB>git push c:\tmp\gittest\test master To c:\tmp\gittest\test ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'c:\tmp\gittest\test' hint: Updates were rejected because the tip of your current branch is behind hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') hint: before pushing again.

    【git】git pushがrejectされたときの対応方法 at softelメモ
  • NUCON 資料を公開しました! | 株式会社ヌーラボ(Nulab inc.)

    昨日は雪が舞う悪天候にも関わらず、大勢の方に NUCON にお越し頂きました。みなさま当にありがとうございました! 基調講演は元より各セッションも大盛況で、「どのセッションを見ればよいか悩んだ」「見れなかったほうのセッションの資料をみたい」といったお声もいただきましたので、以下に資料を公開いたしました。 テクニカルトラック 開発者がかたるヌーラボのコラボレーションサービス API 最前線 ( ヌーラボ 染田貴志、中原正二、後藤幸 ) 職人任せにしないインフラ構築/運用 ~ DevOps時代を生きぬくために ~ ( ヌーラボ 中村知成 ) 今どきのリアルタイムコラボレーションツールの作り方〜Backlog、Cacoo、Typetalkにおける実践例〜 ( ヌーラボ 縣俊貴 ) ジェネラルトラック ヌーラボサービスの利用事例 – Backlogを使ったオフショア開発 ( EVERRISE 古

    NUCON 資料を公開しました! | 株式会社ヌーラボ(Nulab inc.)
  • テストファーストなGitワークフローについて - kazuhoのメモ置き場

    Gitのワークフローに関する話題が、また盛り上がっているようなので、僕が好んで使っているワークフローについて書きます。 対象としているソフトウェアは、GitHubGitHub Enterprise等を使って開発されている、リリースブランチを切らずにmasterにリリースタグを打っていくだけで十分な程度の、ウェブサービス(の部品)やオープンソースプロジェクトです。 まず、以下の2点を原則として考えています。 origin masterを壊さない origin masterの(1st parentをたどるツリー)にテストを通らないcommitを入れないよう努めます 変更の主題を常に明確にする 前者の理由は、masterをいつでもリリース可能な品質に保つためと(←12:44追記)git bisectするときに困らないようにするため。そして、これらの原則から、以下のようなワークフローで作業するこ

    テストファーストなGitワークフローについて - kazuhoのメモ置き場