GitHubのdiffがメソッド名表示されて見やすかったので、ローカルでも出来ないか調べたのでそのメモ。 例えばGitHubのdiffはメソッド名def is_repo?が出る https://github.com/github/hub/commit/87050ce94a97b0c382b99c975bde0c833332b38e 普通にしてるときのローカルのdiffはこんなかんじ。メソッド名出ない ローカルでもGitHubのようにdiffにメソッド名を出すようにするにはプロジェクトルートに
![gitのdiffを見やすく表示する - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c5aa9ce6e24d94fe86b00f03651c27a43ab97ca6/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9Z2l0JUUzJTgxJUFFZGlmZiVFMyU4MiU5MiVFOCVBNiU4QiVFMyU4MiU4NCVFMyU4MSU5OSVFMyU4MSU4RiVFOCVBMSVBOCVFNyVBNCVCQSVFMyU4MSU5OSVFMyU4MiU4QiZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTU2JnR4dC1jbGlwPWVsbGlwc2lzJnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9NDNjNzYxODAyOWExMWVlMjBmM2Y4NGUyYjAyMmUzNDE%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTYxNiZ0eHQ9JTQwWWFzdU96YSZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ZWJhZWMwMTUxNmE4ZDAwMTkxZTE1NmRjM2U4NGNhNDI%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D1a0daaa2b4085e556f2f19eb17d5de0b)
前提: GitHub flow を使っていてCIサーバーはJenkins 最近ちょっと開発フローの改善をして、とてもよく機能してて満足しているので紹介してみる。 この改善をやる前の悩み: pull-requestでコードレビューはできるのだけど、cssとかjavascriptなどの見た目や動作の変更ってコードだけだとわかりにくい。レビューする人が各自ローカル環境で実行するのもだるい。 コードを読まないデザイナーとかプロダクトオーナーとかの人が、pull-requestのレビュープロセスに簡単に参加できない(非開発者全員のところでローカル環境設定するのはだるすぎる)。 コード的にokに見えてmasterにmerge後、何か問題(特に仕様的な問題や、デザイン的な問題)が発生した場合、「修正branchを作ってpull-request」というフローを再度回さないといけない。最初のpull-req
管理下に置かれてるんだけどなぜか無駄に変更されてしまうファイルというのがたまにあって、まあ管理方法見直せという話もあるんだけど、それも叶わない場合、そういうのは無視したい。 その方法についてはこの記事が詳しいのだけど、私はこれを以下のように alias 設定している。 [alias] ignore = update-index --assume-unchanged unignore = update-index --no-assume-unchanged ignored = !git ls-files -v | grep "^[a-z]"これで、 git ignore {file} ファイルを無視する git ignored 無視されたファイルの一覧を表示する git unignore {file} 無視されたファイルを元に戻す という風に直感的に扱えるので便利。
昨日YAPC終わってから研究室の合宿に合流して、酒飲んでたらできてた https://github.com/shokai/twgit git cloneしてパスの通っている場所に置いておく。 READMEに従ってimagesnapとtwをインストールする。 ふつうのgit commmitはこうだけど git commit -m 'implemented great new features' git commitしつつ、写真を撮ってtweetするのはこうやる twgit commit -m 'implemented great new features' あたまにtwをつけるだけでいい。 commit以外のgitコマンドも動く。 会心のreleaseブランチをpushする時などに記念撮影するといいんじゃないでしょうか? git commit -m 'implemented great ne
あるファイルに大量のコンフリクトが発生し解決が面倒なとき、パッチを使ってファイルに1コミットずつ変更を適用する方法を示す。この方法のメリットは: ファイルへの変更を1コミットずつ適用・コンフリクト解決することができる それぞれのコミットを適用する前に、コミットをパッチファイルの形で編集できる 注目するファイル以外への変更をいったん無視し、そのファイルに関係する変更に集中できる の3点である。複数コミットの変更が混ざった大量のコンフリクトマーカーを手作業で消すような状況に陥ったとき、この方法を使えばいくぶんかは楽にマージ作業を進められる。 概要 マージ中に特定のファイルに大量のコンフリクトが起きたら、マージを中止する。一時作業用ブランチを作り、そのファイルに1コミットずつパッチを当てて編集する。パッチを当て終わったらマージをやり直し、コンフリクト解決作業中に、コンフリクトしたファイルを一時作
Gitで「あのリポジトリのこのファイルだけをcloneしたい」という場合に、Sparse checkoutという機能があることを知ったのでそのメモです。 Sparse checkoutはGit 1.7.0以降で追加された機能で、マージに関するコマンド(merge, checkoutなど)で任意のファイルのみを対象とする機能です。つまり、厳密には、一部のファイルのみをcloneするわけではなく、他のリポジトリをまるごとcloneした後に任意のファイルのみをチェックアウトする機能なのですが、目的に近い結果を得ることはできそうです。 Sparse checkoutを使用するには、通常通りにcloneした後、「core.sparse-checkout」を「true」に設定します。 git clone clone元のリポジトリ ワーキングディレクトリ cd ワーキングディレクトリ git confi
Re: [git pull] drm-next Linus Torvalds Sun, 29 Mar 2009 14:48:18 -0700 (訳注 : Daveのrebaseのやり方が好みでないというLinusに対して) > 2009年5月29日(日曜日) Dave Airlieの発言 > > 今から自分がしようとしているのは、直線じゃないツリーを送ろうとしているだけだ。 > パッチを自分の次のツリーにマージする時はいつでも、そこにそれがあるからだ。 > 自分は、Ericのツリーを自分のツリーに直接プルして、その結果を送ろうとしている。 > きれいなマージ履歴について注意しているとは思っているけど、前に言ったように、 > カーネルツリーに関してのドキュメントが何もない状態では、君がどうしたいのか > 本当のところは今の今まで分からないよ。 自分が求めているのは、きれいな履歴だ。でも、それ
@kasumiiです。こんにちは。 遅ればせながらGitのGUIクライアントとして有名な「SourceTree」をインストールしまして、いろいろググってたら以下のブログ記事から「stree」というコマンドを発見。便利そうなので設定してみることに。 【参考】コマンドラインから今いるgitレポジトリをSourceTreeで開く | MemeTodo SourceTreeのバージョン1.3から、Command Line Toolsをインストールすれば「stree」コマンドで作業中のリポジトリをすぐ開けるようになったらしい。 【参考】SourceTree 1.3 Release Blog – Welcome to the Party! | Atlassian Blogs 公式ブログを見てみると、SourceTreeのメニューからCommand Line Toolsをインストールできるけど、AppS
2013-07-13 continuous commit のお供、git rebase を決定的に刷新する最強ツール Uchronie をリリースしました Scala Git いままで git rebase -i に何度泣かされたことでしょう。 git は最高のツールですが(他の SCM に勝るという意味ではありません)、あれは非常に出来がわるい。 テストを回すたびに自動コミットする continuous commit のプラクティスを採用している私達にとって、 interactive rebase は頭痛の種でした。 (continuous commit については Continuous Commit (kyon_mm さんの発表資料)、最近の git の使い方について - tomykaira makes love with codes など)。 git-rebase--interact
まだあわてるような時間ではございません。 インデックス 1.コミットメッセージを間違えちゃった! -- 直前のコミットのやり直し 2.そろそろブランチを整理しなきゃ! -- ブランチの名称変更と削除 3.間違ってコミットしちゃった! -- コミットを取り消す3つのリセット 4.別のブランチをプッシュしちゃった! -- リモートブランチのリセットと削除 5.コミットの順番を間違えちゃった! -- コミットログの並べ替えと削除 6.コミット細かすぎィ! -- コミットログの統合と編集 7.あのコミットさえあれば…! -- 他のブランチのコミットを適用する 8.やばい!ハードリセットしたら消えちゃった! -- 過去の状態の復元 9.masterにマージ後にバグ発生!どうする!? -- コミットを打ち消すコミット 1.コミットメッセージを間違えちゃった! -- 直前のコミットのやり直し エディタが
On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Gitのソースコードを始めてみた時、2つのことが頭にひっかかった。 > 1. C++じゃなくて純粋なC。理由は不明。移植性とか言わないでよ。 > クソだ。 クソまみれなのはオメーの方だ。 C++は悲惨な言語だ。しかも、少なからぬ数のプログラマーが使っていて、完全無欠のどうしようもないクソを生成するのがめちゃめちゃ簡単になっているという点で、よけいに悲惨だ。マジで、Cを選択する理由が「何もなかった」としてもだ、C++プログラマー避けになるというだけで、Cを使う大義名分になる。 つまりだ:Cの選択は唯一のまともな選択なんだよ。Miles Baderがふざけて、「いやがらせによる追い返し目的」なんていってたが、実際のところ正しい。俺の出した結論では、プロジェクトにCよりC++を使いたがるプログラマーは、む
私は Git の大ファンですが、そのためほとんどの UI (ユーザーインターフェース)、特に IDE に統合されているものに関してはそれほどの大ファンではありません。これらの UI は複雑でややこしいのです。これらはいくつかの一般「VCS」言語をコマンドにマップしようとします。または隠しすぎるので、何が起こっているのか理解しずらくしてしまいます。更にひどい場合: Tcl/Tk で書かれています… 端的に言えば、私はこれらの UI を信頼していません。 コマンドラインは私のためのものです。自分のコマンドラインは好きなので、これは素晴らしいものです。ほとんどいつでも履歴の「グラフィック」ビューを見られることや、コミットを準備している時に少し助けてもらえるのは良いことです。 tig で入力する。tig はテキストモード、 Jonas Fonseca によって書かれた git 用の ncurses
git 1.7.10以上で .gitconfig ファイルから include ディレクティブを使って別の設定ファイルを読み込めるようになったらしい。これで GitHub に置いてる dotfiles に .gitconfig も安心して置ける。 .gitconfigにinclude書くと捗る - かるぱねるらすたいる こんな感じで設定するときっと捗るね。 - example file: .gitconfig [core] excludesfile = ~/.gitignore [include] path = ~/.gitconfig.local [alias] *many alias* [color] ui = true diff = true - example file: .gitconfig.local [user] name = hoge hogenosuke email =
Recently while setting up my vimfiles for version control I encountered a problem with git submodules. The plugins are included as git submodules and loaded up with pathogen. For those interested in details on how this works, there is a Vimcast available on this topic. Some of the plugins need to generate helptags or other files that will mark the working tree dirty. There is a very simple way to
Octopus offers the closest integration with git version control on the mac. It has been designed for the mac from the ground up to be as simple as possible to help you focus on your work, but not your tools. Stunning interface optimized for easy workflow. A refreshingly clean design will help you to focus on your work rather than on how to deal with the tool itself. Octopus was designed with the p
Using Git To use Git on the command line, you will need to download, install, and configure Git on your computer. You can also install GitHub CLI to use GitHub from the command line. For more information, see "About GitHub CLI." If you want to work with Git locally, but do not want to use the command line, you can download and install the GitHub Desktop client. For more information, see "About Git
git 1.7からsparse checkout機能が利用できるらしい。 ざっくりとした使い方は以下の通り、 $ git clone リポジトリURL hoge $ cd hoge $ git config core.sparsecheckout true $ echo "hoge.txt" > .git/info/sparse-checkout $ git read-tree -m -u HEAD こうするとワーキングディレクトリ下はhoge.txtファイルだけチェックアウトされる様になるらしい。 これまで制作部スタッフにhtmlファイルを編集してもらうのに社内共有フォルダでファイルの受け渡しをしていたんだけど、この機能を使ったらもう少しスマートにならないかなと考え中。 gitスキルのない制作部スタッフにいきなり今日からgit運用にします。ってのは、ハードル高すぎるので、gitアクセスは
昨日、git reset --hard HEAD してしまって大変なことになった話を書いた。私は普段これを cancel と言う名前に alias して使っている。 [alias] # 中略 cancel = reset --hard HEAD しかし前回のようなことがまたあってはたまらない。人間はミスするものだ。 alias があって実行しやすいのが問題なのだろうか? いや、割とよくする操作*1だし、alias しなくても使うだろう。 てことで、cancel が安全になるようにしてみた。 [alias] # 中略 cancel = !git commit -a -m 'Temporary commit for cancel' && git reset --hard HEAD~ 一旦コミットしてからそのコミットを消す。こうしておけば最悪 git reflog から元に戻せる。特にコミットす
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く