タグ

開発とgitに関するd4-1977のブックマーク (76)

  • git push -f をやめて --force-with-lease を使おう - Qiita

    force push問題 rebaseなどの作業の際、強制PUSHが必要なタイミングが出てくるが --forceではローカルの内容を破壊的にリモートレポジトリを上書きしてしまう。 同じブランチで複数人開発していた場合にタイミングによっては 「◯◯さんのコミットを吹き飛ばしちゃった//」 が発生する可能性が十分ある。 そもそも上記の運用方法に問題がある気はするが、どんな運用をしていたとしても force pushする際は --force-with-leaseオプションを必ずつけるようにしておいて損はないと思う。 TIPS: Github上でブランチを削除できないようにする 消されるとまずいブランチは [Settings] → [Branches]でさまざまなprotectionルールをかけておきましょう!

    git push -f をやめて --force-with-lease を使おう - Qiita
    d4-1977
    d4-1977 2019/04/23
    設定の話しないとなあ
  • 自分の言葉で書かれたコミットメッセージが好き

    誰にも質問されていないけど回答すると、ぼく個人としては「レビュー指摘事項を反映」的なコミットメッセージにはやんわり否定派で、どうしてそう変更すべきと思ったのかを自分の言葉で書く方がベターと思っています。 — juné29💩公式アカウント (@june29) January 11, 2017 140文字には納まらないな、と思ったのでちゃんとエッセイを書く人間になろう! たとえばぼくがレビューを担当させてもらって「ここはAの方がよいと思いました」とコメントしたとして、そのときに「レビューで指摘された箇所を修正」というメッセージ付きのコミットが追加されたとする。そのあとぼくが思い直して「いや、他の箇所も考慮すると、やっぱりBの方がよさそうです」とコメントしたとする。また「レビューで指摘された箇所を修正」というコミットが追加される。 こういうやりとりだと、「レビュー」というプロセスというよりは「

    自分の言葉で書かれたコミットメッセージが好き
    d4-1977
    d4-1977 2017/01/15
    コメントの返信きちんと返そう
  • 復習 Git: GitHub のブランチを削除する.

    復習 Git: GitHub のブランチを削除する. 手が滑って test-2 なんて情けない名前のブランチGitHub に push してしまった. とりあえず,ローカルの test-2 ブランチは, $ git branch -D test-2 で消えた.あとは GitHub の test-2 ブランチを消すだけだ. GitHub でブランチを削除するボタンを探してみたのだが,... 見つからない.どうしよう. git push でリモートのブランチを更新git push はリモートリポジトリに変更を反映させるときによく使うコマンドだ. 通常は, $ git push だけでコマンドを実行するが,これは, $ git push プッシュ先リポジトリ ローカルのブランチ名:リモートのブランチ名 を省略した形だ.git push とだけ実行したときのデフォルト値は, $ git pus

    復習 Git: GitHub のブランチを削除する.
  • レビューしやすいコミット履歴でバグ削減 - Money Forward Developers Blog

    こんにちは。 アグリゲーション開発担当の中川です。 今回は、みんなが大好きな構成管理ツール「Git」について話したいと思います。 私は Git を使い始めてから、バグの発生数が激減しました。 Git を使ったとある手法によってレビューが充実し、バグの少ないコードを書くようになったと考えています。 では、今回はその手法について紹介したいと思います。 ※ 稿は Git 以外の第三世代構成管理ツール(Hg、Bzr など)にも適用するかと思いますが、Git の用語とコマンドを使って紹介していくため Git の基知識が必要となります。ご了承ください。 レビューしやすいコミット履歴と、開発の流れで自然にできるコミット履歴の乖離 以下のようなコミット履歴があるとします。 1. wip: 仕様変更○○を行い始めた 2. wip: 仕様変更○○の続き 3. wip: ちょっと設計を変更、それと過去のバグ

    レビューしやすいコミット履歴でバグ削減 - Money Forward Developers Blog
    d4-1977
    d4-1977 2015/12/03
    すごく詳しい解説
  • 仕組みから理解するgit rebase - Qiita

    こんばんは! Git Advent Calendar 2015の初日を担当させていただきますtrebyです。初日からコケるのではないかと心配されていた皆様お待たせしました。そしてごめんなさい。(12/1は23:59までなのでまだセーフです……よね?) この記事ではcommitとはなんなのかという視点からGitの仕組みについて紹介し、その上でrebaseを業務で使いこなすためのテクニックを一つ紹介します。お楽しみください! Gitの内部構造 Gitは分散型のバージョン管理システムであるということは今さら説明の必要はないかと思います。 バージョン管理というのはここでは、誰が何を変更したのかということを記録していくことであり、分散型というのは、バージョン管理対象のプロジェクト(ソースコードなどのドキュメントのまとまり)が記録される場所、つまりリポジトリが複数存在しうるということでしたね。 では、

    仕組みから理解するgit rebase - Qiita
  • Gitのコミットメッセージの書き方 | POSTD

    (訳注:2015/10/31、いただいた翻訳フィードバックを元に記事を修正いたしました。) (訳注:2015/11/1、いただいた翻訳フィードバックを元に記事を再修正いたしました。) 訳: プロジェクトが長引くほど、私のGitのコミットメッセージは情報が薄くなっていく。 イントロダクション | 7つのルール | ヒント イントロダクション:なぜ良いコミットメッセージを書くことが重要か Gitのリボジトリのログをランダムに閲覧すると、ひどいコミットメッセージを目にすることがあります。例として、私が昔書いたSpringにコミットした これらのgem を見てみましょう。 $ git log --oneline -5 --author cbeams --before "Fri Mar 26 2009" e5f4b49 Re-adding ConfigurationPostProcessorTest

    Gitのコミットメッセージの書き方 | POSTD
  • https://github.com/objectx/git-style-guide/blob/master/README.md

    https://github.com/objectx/git-style-guide/blob/master/README.md
  • git commit --fixup とは何か - 詩と創作・思索のひろば

    git commit --fixup というオプションの存在を最近知って調べた。 ヘルプとリリースノートより "git commit" learned the --fixup and --squash options to help later invocation of interactive rebase. Git v1.7.4 Release Notes --fixup=<commit> Construct a commit message for use with rebase --autosquash. The commit message will be the subject line from the specified commit with a prefix of "fixup! ". See git-rebase(1) for details. 1.7.4 から入って

    git commit --fixup とは何か - 詩と創作・思索のひろば
    d4-1977
    d4-1977 2015/10/19
    知らなかった…ありがたい
  • QA@IT サービス終了のお知らせ - @IT

    平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識

    QA@IT サービス終了のお知らせ - @IT
  • 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

  • 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

    d4-1977
    d4-1977 2015/08/27
    merge済みか調べるコマンドあったのか…
  • 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

  • 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

    d4-1977
    d4-1977 2015/08/27
    知らなかった事が書いてあった
  • 複数のremoteにgit pushしたい - ふり返る暇なんて無いね

    git remote set-url --add ${remote} して上げれば良い。 # git clone git@github.com:masasuzu/p5-Acme-LoveLive.git cd p5-Acme-LoveLive git remote set-url --add origin git@bitbucket.org:masasuzu/p5-acme-lovelive.git # git push この例だとgithubとbitbucket両方にpushするようになっているが、githubと社内のgitサーバ両方同期したいときにどうすれば良いのかなーと調べて出てきた一つの答えがこれ。 定期的にcronで同期させるとタイムラグがあるのに対して、こっちだとリアルタイムに同期出来るのが利点かな。ただ、cloneした後にこの設定忘れると、社内のミラーレポジトリが古いままにな

    複数のremoteにgit pushしたい - ふり返る暇なんて無いね
    d4-1977
    d4-1977 2015/08/14
    知らなかった!便利かも
  • コマンドラインを拡張しやすくするヤツ書いた - AnyType

    gitなど既存のコマンドラインを拡張して新しいサブコマンドを追加する方法はいくつか考えられる。 git alias gitの場合はgit aliasを使うことで簡単にサブコマンドを追加できる。gitのとき限定。 ラッパー github/hubのような既存のコマンドラインをラップしたスクリプトを書き、alias hub=gitのようにaliasすることで既存の機能を保ちつつ機能を追加できる。 問題点としては、複数のラッパーによる拡張が難しくなる。例えば、ここでbubというgitのラッパーを書いたとする。gitにhubの機能とbubの機能を拡張したい。hubは入力されたサブコマンドがhubになければgitにフォワードしている。なので、hubとbubを同時に拡張するにはbubをhubのラッパーとして実装することになってしまう。依存関係をハードコーディングすることになるため、まったくスケーラブルじ

    コマンドラインを拡張しやすくするヤツ書いた - AnyType
  • git リポジトリからプロジェクトの概要をつかむ

    もうすぐ春ですね。この時季は異動したり転職したりで新しいプロジェクトにジョインする人が多いのではないでしょうか。 さて、そんな新しいプロジェクトにジョインしたとき、プロジェクトの状況を git リポジトリからざっと見てみようというのが今日のテーマです。 よくマージしてる人ランキング マージしてる人とレビュアーは同じことが多い。つまりコードをよく知る人がこれでわかる(マージも自分でやるプロジェクトだとそうではないだろうけど)。 $ git log --merges --format="%cn" | sort | uniq -c | sort -r | head コミッタごとのコミット数ランキング 誰がよくコード書いてるかがわかる。もしくは、こいつ他人のコード削除してばっかだなとか。 add/delete 合計コミット $ git shortlog -sn コミッタごと add/delete

    git リポジトリからプロジェクトの概要をつかむ
  • Steins;Git

    Steins;GitはSteins;Gateを用いてGitを解説する薄いです。 Steins;GitはSteins;Gateの二次創作物です。そのため貢献をする前に次に挙げるページを読み、これらに遵守した形で貢献をしていただけるようお願いします。 著作物転載ガイドライン|ニトロプラスNitroplus 二次創作活動における同人誌等の活動に関する取り扱いについて|ニトロプラスNitroplus Steins;Gitの執筆方針について Steins;Gitは「Gitの使い方を、Steins;Gateの世界観を使って説明する」書籍です。「Steins;Gateのストーリーの流れに沿って、Gitの説明をする」書籍ではありません。 簡潔に書くと「シュタゲ」というよりは「技術書」よりです。とはいえ、なるべくSteins;Gateを絡めていきたいですし、全体の雰囲気もSteins;Gateっぽくした

    Steins;Git
  • 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
  • Mobile First Development at COOKPAD #deploygate

    Bakusoku Iterations Tokyo at mixi (2014/5/29) の発表資料です http://deploygate.doorkeeper.jp/events/11579

    Mobile First Development at COOKPAD #deploygate
    d4-1977
    d4-1977 2014/05/30
    モバイルファースト室って!クックパッドがモバイルアプリに真剣なのがよく分かる
  • 提言: コミットメッセージの一行目には要求仕様を書け - Qiita

    これは Git (や Subversion などのバージョン管理システム) にコミットする時により良いコミットメッセージを書くための提言です。この提言は特にメッセージの一行目だけを対象とします。せめて最も重要な一行目だけでも良いメッセージを書いて欲しいからです。提言をズバリ一言で表すと 一行目には要求仕様を書け です。 背景 プロジェクトによっていろいろ慣習の差はあるものの、一般的には「コミットメッセージの一行目は変更内容の要約を簡潔に書け」とされます。特に Git は、各コミットメッセージの一行目だけを取り出してそれを一覧表示するなど、一行目を特別に処理する機能が多いので、一行目にできるだけ多くの情報を凝縮させることは重要です。またメッセージを一行しか書かない不届きな慣習のプロジェクトでは、十分な情報を持たないメッセージは無用の長物と化します。 良くないコミットメッセージ しかし私は、情

    提言: コミットメッセージの一行目には要求仕様を書け - Qiita
    d4-1977
    d4-1977 2014/05/29
    コミットメッセージは、悩ましい問題。よくよく考えたら、短くするんじゃなくて、大切なのは伝わるか?かなあ