Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
この記事は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に新しいリンクを追加 このまま両方まとめてコミットしてコミットメッセージに両方の内容を書いておくというのもひ
背景 oh-my-zshは大変便利で、便利ではあるけど複雑怪奇なzshの設定を簡単に済ませることができるようになりました。 しかし、気の赴くままにpluginを追加していると、起動が重くなったり補完が重くなったり徐々に使いづらくなってしまいます。初回の起動が重いのはscreenやtmuxを活用してつぎつぎzshを起動・終了している人にはじわじわ効いてきますし、補完が重いのはとてもつらいものです。 また、oh-my-zshのpluginには、元のrepositoryからsourceを持ってきたまま放置されているものもあります。例えば、oh-my-zsh/plugins/zは2014-04-11時点では本家のrupa/zより古く、更新されてないことが伺えます。 oh-my-zshはいろいろつらさもあることは分かった、しかしoh-my-zshを捨てて一からzshを設定するのはつらい……。そんな方
いままでAppleにアプリを申請するタイミングでタグを打っていて、 その後にリジェクトされると以下のようなタグが残ることがありました。 非常にダサいですね。 1.0.0 1.0.0-2 1.0.0-3 最近は少し学習して、QAに入る段階でrelease/1.0.0といったブランチを切るようにしました。 審査に出した段階ではまだタグは打たず、もしもリジェクトされた場合は引き続きrelease/1.0.0を更新します。 審査を通過した場合はそこでタグを打って、release/1.0.0をmasterにマージします。 以下の図のようなイメージです。 このように運用することで、余計なタグが打たれることはありませんし、審査中のバージョンを見失うこともありません。 もしかしたら普通のiOSデベロッパーは当たり前のように実践していることなのかもしれませんが、 自分は最近までダサいタグを打ったり、タグを打
はじめに gitはコミットごとにレポジトリ内のファイル全てをスナップショットとして保存するというリッチな 設計になっている。 それがgitの便利さの所以なのだが画像データや音声データのようなバイナリデータを持とうとすると 少しの変更でもそのたびにコピーが生じてファイルサイズ分の容量が増えることになり、あっという間にレポジトリが 肥大化してしまう。 特に学習結果をファイルに保持してテスト等に使いまわすようなプログラムを管理しようとすると アルゴリズムのパラメータを少し変えるたびに100kB近い容量が増えていき、実にイケてない。 普通なら.gitignoreに*.xmlと書いてデータ自体は手動管理したり、シンボリックリンクにして別ディレクトリに置いてそれだけrsyncで同期するようにしたりするんだが 過去の実験時の状態に戻れなかったり、毎回rsyncするのは不便だった。 なんか無いかなーと思っ
先日とある方と開発ワークフローについてお話していて初めて知ったのですがgit-commitには--allow-emptyという空の(親コミットと差分がない)コミットを作成できるらしいですね。 僕が今関わっているプロジェクトでは WIP PR を用いたワークフローを取り入れているのですが、このgit commit --allow-emptyを用いるともう一段階快適なワークフローになるかと思ったのでメモがてら書き留めておきます。 WIP PR って何? Work In Progress Pull Request の略です。 Github に Pull Request (以下、PR と表記)という機能があるのは皆さんご存知だと思います(知らない方はググってください)し、業務で取り入れている方も多いと思いますが、それを作業途中の状態で出すことを WIP PR と呼びます。 作業途中のトピックブラン
2014/02/09 追記 コメントのところでやり取りしているようにmergepbxの作者さんから連絡があって、この記事で書いた問題が修正されました! 今現在は merge=mergepbx がいい感じになってきているのでそっちがオススメです。 複数人でプログラミングしているとpbxprojがやたらとコンフリクトする 例えば、 Aさんが AALabel.m をプロジェクトに追加して Bさんが BBLabel.m をプロジェクトに追加して とただそれだけなのにマージのときにコンフリクトするpbxprojさん。。。 ただそれぞれファイルを追加だけのことでコンフリクトするなんて… どうにかならんもんかいとTwitterでつぶやいたところ、 @azu_re さんから有り難い教えが! @tokorom gitはファイル別にマージ方法を指定できるので、mergepbxみたいなのをpbxprojのマージ
上記の例の場合、変更した箇所が近いため同じ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を押してこの変更をステージングします。すると次は以下の表
分散バージョン管理を華麗に扱いたい堀口です。 GREE Advent calendar 2013 の 14 日目として参加させていただきます。 お二人に続き Haskell の話をしようかと思ったのですが、急遽無難な開発の話に変更しました :o Java や C++ には OOP の概念が必要であったように、分散作業の認識が薄いまま git や Mercurial を使うことは長期的に不幸をもたらします。 とあるプロジェクトにて、その一部を副産物のミドルウェアとして抽出すべく、アプリケーションと分離したい 不具合があったので原因を探りたいが、依存関係が複雑すぎるのでコードを読む量を減らしたい テストやレビュー、提案、リファクタの運用を強化したい よそのプロジェクトに迷惑を掛けないように、そこのツールを改良して使いたい。 いままで何気なく「こんなもんだろう」と思って手間をかけていませんでした
2013/10/16: Githubのhelp「Remove sensitive data」について追記 先日、初めて知ったのですが、GithubのプルリクをCloseは出来ても、削除は出来ない。(*1) 普段使う上では困らないのですが、パスワードなどの公開すべきでない情報がプルリクに含まれると、結構ヤバい事になる。 結論 結論を先に書くと「リポジトリを作り直すしかない」 試したこと プルリクしてるブランチを上書きする パスワードなどの情報をコミットから(rebase -iなどで)消してからブランチを上書きしてみた。 $ git push -f origin topic_branch プルリクに上書き前後の履歴が全て表示される... プルリクエストしたブランチを削除する 実はGithubでプルリク中のブランチを削除すると、自動的にプルリクがCloseになる。 Closeになるだけだった..
各commitのURL https://github.com/hoge/fuga/commit/xxxxxxxxxxxxxxxxxxxの末尾に "?w=1" をつけてhttps://github.com/hoge/fuga/commit/xxxxxxxxxxxxxxxxxxx?w=1とすると、差分がホワイトスペースのみの行を省いて、文字の変更があった行だけを差分表示してくれるので、何を変更したかがピンポイントですごくわかりやすくなる場合があります。 例えば下記の例。CoffeeScript内である部分をコールバックにして、コールバックした部分のインデントをごっそり下げてるのですが、インデントを変えただけの行も全部差分に表示されてて、何を変えたのかひと目でわかりづらい。 普通のcommit表示 ↓ これがURLに"?w=1"をつけるとこうなる!!! ↓ 単にインデントを変えただけの行が省かれ
We’re getting things ready Loading your experience… This won’t take long.
コミットメッセージの1行目は”短い説明” 英数字で50文字以内にすることを推奨します。短すぎてもわかりにくくなるのでいけません。 内容・理由・意味などを知らない相手によくわかるように述べること。 — せつめい【説明】 角川必携 国語辞典 50文字以内の“説明”にしてください。オレオレ語で書かれた自分しかわからないメモにしないでください。 コミットメッセージのスタイル 日本語よりも英語を利用して、行頭に動詞(現在形のみにする)を置くことを推奨します。ある程度、統一されたスタイルは容易にコミットログを理解するための助けとなります。 日本語でコミットメッセージを書くと 決済に不具合があるバグを修正しました メンテナンスモードを追加しました 日本語の場合、動詞を後ろに持ってこないと違和感ある文章になり、最後まで読まないと文章が理解できません。 英語でコミットメッセージを書くと Fix a bug
これからGitを始める人が読むべき記事のまとめ 2009-05-13 candycane(RedmineをCakePHPでPHPに移植するプロジェクト)の開発でGitの素晴らしさを痛感したので、これはもう全力でGitを広めるべきだと思いました。そこで、これからGitを始める人が読むべき記事をまとめてみたいと思います。 なお、Gitの発音は「ぎっと」です。 目次 1 Gitの開発者による45ページの特集記事「WEB+DB PRESS vol.50 はじめてのGit」2 Gitを使いこなすための20のコマンド3 GitM#1 プレゼン資料4 Git/Subversionコマンド対応表5 アリスとボブのgitをちゃんと理解したい!6 github.com7 Gitはソースからインストールしよう Gitの開発者による45ページの特集記事「WEB+DB PRESS vol.50 はじめてのGit」
こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"
tbaggery - A Note About Git Commit Messages A successful Git branching model » nvie.com Commit Often, Perfect Later, Publish Once—Git Best Practices だいたいこれらに書いてあることを考えている。 基本的にGit Successful Branch Modelで運用する。git-flowを入れて使っているけど、手でやってもそんなに面倒ではないし好きなようにしたらよさそう。 Subversionを個人で使っていたころはブランチはよくわからないけど恐しいものだったけど、Gitを使いはじめてだいぶ親しめるようになった。 文字通り、ブランチ、枝である。気軽に扱えるということは理解の助けにもなる。 コミットの単位 論理的に最小限度のコミットをつくる。「こう
追記:たくさんブクマしていただいて驚いております。ブクマコメントだと、やはり git push -f は反則だろという意見がサイレントマジョリティのようですが、そこはそれ、自 己 責 任 追記2(2011/11/07):commit messageをミスった場合について訂正しました。 git rebase -i で直近のコミットを "edit" にして修正すると、 「--amend使えや」と言われるようです。 gitのコミットをしくじった時の対処法について、一覧性の高いまとめがなかったので作りました。正確さは保証できないので、コマンド名ヒントに自分でググって下さい ほかのやり方があるよ、間違ってるよ等のご指摘歓迎です。 派閥別 gitでコミットミスった時のまとめ | ├─ 一人で使ってるよ | | | ├─ 手元に変更を取り戻したいよ(1)(そうだね、add忘れだね派) | |
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く