Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

お疲れさまです、trebyです。 もうだいぶ日付が変わりそうな勢いですが、Git Advent Calendar 2014の23日目を担当させていただきます。 Gitを業務で使い始めて早2年、だいぶ慣れてきた感じがありますが、それをアウトプットする機会があるかといえばなかなかありません。せいぜいたまに同僚に聞かれるくらいでなんかもったいない感じがあります。 そこで今日は私個人がgitを使って仕事をする上でどういうフローしているかなーということを改めて文字にアウトプットしてみたいと思います。ご参考にしていただくなり、ツッコミしていただくなりしていただけますと幸いです。 なお、本投稿において想定するツールはGit、ホスティングサービスはGitHubですが、多分その他のサービスでもいけるのではないかと思います。 開発準備 「新しくチームに配属された!」等のシチュエーションを想定しています。 開発
対象 開発フローの中でコードレビューを実施しているひと git add -p や git rebase -i でコミットの分割や統合ができるひと コードレビューさせない レビュー無しにマージしてもらうために同僚をいかに抱き込むか。 という話ではなく、レビュワーの コードレビューの負荷を下げる ことを意図しています。 無視できるコミットを増やす どうすればレビュワーがより短時間で自分の書いたコードをレビューできるか。この問に対して、レビューの妨げとなるものを排除する、というアプローチがあると思っています。そのための良い方針だと考えている 無視できるコミットを増やすこと について書きます。 前提 コミット どのコミットにおいてもテストが通るようにする コミットメッセージ ちゃんと Git のスタイルで記述する (Gitのコミットメッセージの書き方 の原則を守る) Git の操作 雑にコミットし
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに こんにちは!nanapiデザイナーのyunicoです!「Git Advent Calendar 2014」の15日目を担当します(^o^) 今年はなんか色々GitGit言っていた年だったので、最後にアドベントカレンダーに参加しちゃいます!わいわい!去年からすると、まさか一年後にGitのアドベントカレンダーに参加しているとは思いもよりませんでした〜。感慨深いものです!よろしくお願いします<(_ _)> 前置きと今年やったことまとめ TechBlogでGitについて書いた nanapi勉強会でTL GithubKaigiでTL P
はい、2014年も終わるということで。最新版の2.2を含んだ2.0 ~ 2.2で追加された注目機能をいくつか紹介したいと思います。なんといっても今年はメジャーバージョンアップのあった年ですからね。 2.0:git push のデフォルトオプションの変更 これは2.0の有名な変更点ですね。matching から simple に変更されました。ちょっとわかりにくい部分だと思うので詳しく説明します。 ※ちなみに自分はそのどちらでもない nothing を利用しています。 matching 今までのデフォルト、ローカルとリモートのブランチ名が同一であればすべてがpush対象 というものです。昔からgit使っている人は、「そのブランチpushしたかった訳じゃないんだよ!」という苦い思い出がある方もいるのではないでしょうかw upstream simpleを説明するためには、これを説明したほうがいい
いろいろな方々とお話していると、「Gitでバージョン管理をしてみたい!」というような意見を多く聞きます。(Qiitaユーザーは「すでに使ってるよヽ(´ー`)ノ」という方が多いとは思いますが…) 今回は、キャリア1年未満の時にgitの社内での運用についていろいろと制定していた際に、勉強した記事(+α)などを紹介したいと思います。 読んでほしい方 gitをチームでこれから導入しようとしている方 とりあえずgitを使ってみて、突っ走ってしまい、意味の分からないブランチが乱立したりして、運用に困っている方 新入社員の方など、バージョン管理って何なんだろうと思っている方 そもそもGitとは?基本的な使い方は? Gitを使うと何ができるのか、それを基本的にどう動作させるのかを修得するためのサイトです。 まずは以下のサイトを読んだり触ったりしてみることからはじめました。 概要や使い方とその解説 サルでも
Gitのコミットメッセージの書き方 自分なりにまとめてみました。Git歴浅いので、意見募集中です。 (2014年12月17日追記) 想像以上にたくさんの方にストックなりはてブなりいただいたので、はてブでなるほど!と思ったコメントをもとに少し修正・加筆してみました。 (2022年1月4日追記) 最新の書き方をこちらに書きました。 https://zenn.dev/itosho/articles/git-commit-message-2023 原則 以下のフォーマットとします。 1行目:変更内容の要約(タイトル、概要) 2行目 :空行 3行目以降:変更した理由(内容、詳細) 日本語でも英語でもOKですが、リポジトリで統一してください。 1行目 コミット種別と要約を書きます。フォーマットは以下とします。 [コミット種別]要約 コミット種別 以下の中から適切な種別を選びます。 (多すぎても悩むので
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 は悪くないが、コミットすべきファイルにもアンダースコアで始まるものがあって紛らわしい。 そこで、作業
ここでは newSetting が新しい設定項目だと思ってください。 この時、もともとの設定項目 path が存在していますが、 これが動作確認に必要な項目で ローカル特有の設定値に変更していたとしたらどうでしょうか? add 前にリポジトリの内容に戻しておかないと、 このローカル用設定のままコミットされてしまいます。 こんな時に使えるのが magit の部分 stage です。 使い方はいたって簡単です。 編集が完了した状態で magit-status を実行します。 magit での git 操作画面が開きますので、部分的に stage したいファイルにカーソルを合わせます。 この状態で M-s (alt+s, Cmd+s, Opt+s)をタイプします。 するとファイルリストの下部に Diff が表示されます。 この Diff 上でリージョン選択して s をタイプすると、 リージョン選
この記事は 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
インストール方法から参考リンクまで。 自分の勉強ついでに、Tigについて基本の すべてをまとめてみました。 合わせて読みたい 【おすすめ】MacのFinderをカスタマイズする魔法のコマンドたち 【おすすめ】これからWebする人はここ読んどけ(HTML/CSS/JS/Ps/Ai.etc) 【おすすめ】Qiitaを使い倒す方法一覧 Tigとは 定義 Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands. 要
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 「開発者(個人)のための」としているのは、別に自分でやっても良いんだけど Jenkins に任せられるなら任せたい、くらいのモチベーションを表現したつもりです。 環境 Ubuntu 14.04 LTS Jenkins 1.573 Bootstrap になって雰囲気が変わりましたね 初期設定 Jenkins 初期設定 Plugin のインストール Git Plugin 依存しているPluginも自動的にインストールされます。 Git Parameter Plugin は、ビルド時に Extended Choice Paramet
つい先日、GitHubで管理していたテスト用中央ブランチに、チームメンバーが誤ってgit push --forceしてしまい、 一部の歴史が消失するという事件が起きました。 ぎゃあああ!なんばしよっとね!うっかりでしたじゃ済まんばい! とか思っていたらJenkinsの開発者みたいなスゴい人でもやらかしちゃうみたいです。 Jenkinsの開発者、間違えて一ヶ月前のローカルレポジトリをgit push --forceしてしまう http://cpplover.blogspot.jp/2013/11/jenkinsgit-push-force.html スゴい人でもやらかすんだから、平民の我々もそのうちやらかすに違いない。 緊急バグ修正などで慌てていたら尚更ですね。(というか自分が一番やりかねない) というわけで、何とか仕組みの上で防くことができればと思って仕掛けることにしました。 以下のスクリ
こんにちは@a_suenamiと申します。 これはGit Advent Calendar 2012の17日目の記事になります。 前日はid:akiyokoさんのGitコマンド総選挙でした。 Gitの内部構造 みなさんはGitがどういう風にデータを管理しているか意識したことはありますか? コマンドの使い方に関するTipsはよく見かけるのですが、なかなかデータ構造に着目した解説は少ないのが実情かと思います。 そこで本日は僕が以前社内で行ったGit勉強会の話をもとにして、Gitの内部でどのようなデータがやりとりされているのかという話をしたいと思います。以下が以前僕が社内で勉強会をしたときの資料です。 http://www.slideshare.net/asuenami/git-15199548 タイトルの通り、非プログラマ向けの内容なのですが、PART2ではGitの内部構造を擬人化して説明すると
ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimやemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く