タグ

gitに関するaki77のブックマーク (384)

  • git revert で複数コミットを打ち消す - miauのブログ

    git にはコミットした内容を取り消す方法がいくつかありますが、いったんリリースしたコンテンツの公開期間が終了してその内容を取り下げたいような場合は、git revert でリリース時のコミットを打ち消すコミットを作るのがお作法です。 今回まさにそういう状況になったんですが、リリース時のコミットが複数回にまたがっており、それも 先のエントリ で書いたように他の対応と入り交じってコミットされてしまっています。 こういう場合にどう revert すればいいかという話です。 revert の基的なところ 例えば 3a0e871f というコミットを打ち消したい場合は、 git revert 3a0e871fを実行すれば、 Revert "xxx 対応" This reverts commit 3a0e871ff60411ca89fa07c7f2b4d426fa04285d.のようなメッセージがみ

    git revert で複数コミットを打ち消す - miauのブログ
    aki77
    aki77 2013/07/26
  • git push 前に自動でテストを回そう - tomykaira makes love with codes

    2013-07-14 git push 前に自動でテストを回そう git git push する前にテストを回しわすれ、 pull request が CI にはねられて悲しい思いをすることが多かったので、忘れないように自動化した。 git には pre-push hook が 1.8.2 から導入された。 以前 temporary なコミットが含まれる場合、push をやめるというのを作ってとても重宝した。 git-now したコミットの誤送信をふせぐ - tomykaira makes love with codes テストを回すのはチェックに時間がかかるけど、それで円滑な開発と綺麗なコミットグラフが促進されるなら、30秒ほどまつ価値はあると思う。 .git/hooks/pre-push の内容は次のような感じ。以前のに足したところから、関係なさそうなところを消したので、余計なものが混

    aki77
    aki77 2013/07/15
  • How do I configure git to ignore some files locally?

    From the relevant Git documentation: Patterns which are specific to a particular repository but which do not need to be shared with other related repositories (e.g., auxiliary files that live inside the repository but are specific to one user's workflow) should go into the $GIT_DIR/info/exclude file. The .git/info/exclude file has the same format as any .gitignore file. Another option is to set co

    How do I configure git to ignore some files locally?
    aki77
    aki77 2013/07/05
  • git difftool --dir-diff が便利すぎて泣きそうです

    Git の 1.7.11 から git difftool コマンドに --dir-diff というオプションが追加されたのですが、これがライフ チェンジングだと思ったので紹介します。 --dir-diff 登場以前の git difftool は「ファイルごとに順番に差分を表示していく」ことしかできず、使い勝手はいまいちでした。それが、--dir-diff オプションの登場で状況が一変したわけです。 こんな感じの使い心地だよ ある Git レポジトリーで dir1/a.txt と dir2/c.txt を編集したとしましょう。 この状態で git difftool --dir-diff または git difftool -d を実行してみると・・・。 はい、差分のあるファイルが一覧で表示されました。 (difftool に WinMerge を設定して、メニューから [ツリー表示] を有効

    git difftool --dir-diff が便利すぎて泣きそうです
    aki77
    aki77 2013/07/03
  • zawを使って最近更新したブランチをチェックアウトする - $shibayu36->blog;

    仕事でgit使っていてレビューとかしていると、どうもgitのブランチ切り替えがだるくなってくる。それで、zawで更新日時順でブランチが並んでいて、選択するとgit checkout出来ればすぐにブランチ切り替えが出来て便利ではと思いやってみた。 bindしたキーを押すと、更新日時順でブランチが表示されて、Enterを押すとチェックアウトする。更新日時順なので数回キーを押すだけで、チェックアウトしたいブランチに辿り着けることが多い。zawを使っているので絞り込みも出来る。 インストール zawを使っていれば、導入は簡単。 まずzawのsourceのディレクトリに以下のファイルを置く。もしくは適当なところに置いて、zawのloadの後にsourceを使ってloadする。 https://github.com/shibayu36/config-file/blob/master/.zsh/zaw-

    zawを使って最近更新したブランチをチェックアウトする - $shibayu36->blog;
    aki77
    aki77 2013/06/23
  • Gitの忘れがちだけど絶対に使うであろうコマンド達 | Basicinc Enjoy Hacking!

    ベーシックでは、Gitを使ったバージョン管理システムを導入しています。一部のプロジェクトでは先行して導入していたものの、全社的にはまだまだ…といったわけで、よくGitコマンドについて質問されるので、ここで軽くまとめておきたいと思います。 普段は git add / commit / push / pull しかしてない…っていう人向けです。 addしたファイルを取り消す $git reset HEAD ファイル名 更新内容自体は取り消さず、addしてインデックスに登録するのを取り消します。 更新したファイルの更新内容を取り消す $git checkout ファイル名 commitする前限定です。 他ブランチの特定のコミットだけマージしたい $git cherry-pick コミットID とても便利なコマンドですが、cherry-pickを多用するような運用スタイルになっていたら問題なので、

    Gitの忘れがちだけど絶対に使うであろうコマンド達 | Basicinc Enjoy Hacking!
    aki77
    aki77 2013/06/19
  • git-messenger.el 0.03をリリースしました - Shohei Yoshida's Diary

    git-messenger.el 0.03をリリースしました リポジトリ https://github.com/syohex/emacs-git-messenger インストール MELPAに登録されましたので、package.elからインストールすることができます。 詳細表示機能の追加 git-messenger:popup-messageを C-u prefixで実行することで詳細表示が されるようになりました。コミットメッセージの他に Commit ID, Author, Commit Dateもあわせて表示されます。 常に詳細表示をする場合は git-messenger:show-detail 変数に tを 設定してください。 イメージは以下のような具合です hookの追加 popup後に実行される hookを追加しました. git-messenger:after-popup-ho

    git-messenger.el 0.03をリリースしました - Shohei Yoshida's Diary
  • 現在編集しているファイルを git add -Nする - Shohei Yoshida's Diary

    git管理下で git-gutter.elが効果を発揮しないのが嫌なので 作りました。ちなみに git add -Nはとりあえず stagingするという もので、後ほどちゃんと git addする表明みたいなものです。 ここでは明示的にコマンドを叩くようにしましたが、find-file-hook あたりに引っ掛けるのも良いかと思います。その場合は git管理下で あればというチェックが必要になるかと思いますので、そうしたい人は そのように実装してみてください。 コード (defun my/git-intent-to-add () (interactive) (save-buffer) (let* ((file (file-name-nondirectory (buffer-file-name))) (cmd (format "git add -N %s" file))) (unless

    現在編集しているファイルを git add -Nする - Shohei Yoshida's Diary
  • zsh で Git の作業コピーに変更があるかどうかをプロンプトに表示する方法 - mollifier delta blog

    2012/12/13 追記 zsh 4.3.11 以降の新しい機能を使って改良しました。 -> 「zsh の vcs_info に独自の処理を追加して stash 数とか push していない件数とか何でも表示する - Qiita」 Git を使ってファイルを編集した場合、それをいったんインデックスに追加(add)してその後コミットってのが基的な流れになる。なんかいろいろやってると、ちゃんと add したのかどうかわかんなくなることがある。 そういうときは status コマンド使えばいいんだけど、以前エントリ書いた zsh の vcs_info の機能を使うといい感じにプロンプトに表示できるようになるので紹介する。 zshrc の書き方 こんな風に zshrc に書いておけば OK。 autoload -Uz add-zsh-hook autoload -Uz colors color

    aki77
    aki77 2013/06/11
  • gitでありがちな問題の解決方法まとめ - Qiita

    Git Advent Calendar / Jun. 最終日(30日目)の記事です.29日目は「いざという時のためのgit reflog」でした. Git Advent Calendar最後なので,git操作でやりがちなミスからどう回復するかをまとめます.他にもあればコメントもらえるとマージしていきます. ブランチを切り忘れてmasterでコミットしてしまった その時点でブランチを切る&reset --hardで間違ったコミットたちをmasterから消す $ git checkout -b new-branch # masterの最新コミットを消す $ git checkout master && git reset --hard HEAD~

    gitでありがちな問題の解決方法まとめ - Qiita
    aki77
    aki77 2013/06/11
  • npmのpackage.jsonにgitリポジトリを指定する方法。 - Sooey

    npmのpackage.jsonにgitリポジトリを指定する方法。 パッケージ管理にnpmを使っているnodeアプリのpackage.jsonに、 "dependencies": { "hubot": "2.3.0", "hubot-scripts": ">=2.1.0", "hubot-hipchat": ">= 1.0.8", "optparse": "1.0.3", "xml2js": ">= 0.1.14", "jsdom": ">= 0.2.14" } このように依存ライブラリが記述されている場合に「hubot-hipchatをforkしてパッチをあてたものを参照させたい」といったケースでどうするか。 "dependencies": { "hubot": "2.3.0", "hubot-scripts": ">=2.1.0", "hubot-hipchat": "git://gi

    aki77
    aki77 2013/06/11
  • 変更を一時的に退避!キメろgit stash - Qiita

    gitは、とにかくトピックブランチを作成して作業する。だいたい機能追加とかバグ修正とかの単位でブランチを作って作業します。(ちゃんとやってますよね?) なので、作業の途中で別の修正を優先してお願いっ!なんて言われたときは、別のブランチに切り替えて作業をする必要がでてくる。そんな時に変更を一時的に退避しておくことのできる機能、それがstashである。 では、早速使い方 まだcommitしていない状態の変更ファイル(addしてる or add していない)が存在する状況で、次のコマンドを実行すると変更ファイルを退避することができる。 ※saveは、省略することもできる。 これでファイルの退避完了!git statusとか見てみると変更状態であったファイルがなくなっている。この状態なら安心してブランチを切り替えることもできる。めでたしめでたし。 と、退避だけならこれで終わりだけど、次につかうとき

    変更を一時的に退避!キメろgit stash - Qiita
    aki77
    aki77 2013/06/10
  • GitHub - rosylilly/git-hook: git-hook is very eazy git's hook management tool.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - rosylilly/git-hook: git-hook is very eazy git's hook management tool.
    aki77
    aki77 2013/06/10
  • bleis-tift/Git-Hooks - GitHub

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    bleis-tift/Git-Hooks - GitHub
    aki77
    aki77 2013/06/10
  • githubでforkしたリポジトリにfork元の変更をmergeする方法

    この記事は公開されてから7年経過しています。現在とは内容が異なる場合がありますのでご注意ください。 最新の記事や関連記事をお探しの方は下の「サイト内検索」で検索してみてください。 githubを使ってて使わないと損な機能の1つとして fork がありますが、forkした後の自分のリポジトリは fork ボタンを押した時点でのコピーになるので、その後fork元のリポジトリで変更があった場合は自分のリポジトリにもその変更を取り込みたいですよね。 まぁ、「リポジトリを1回削除してまたforkし直す」というのも1つの方法だとは思いますが、せっかくならリポジトリは残したままがいいですよね。 というわけでその方法をまとめてみました。 forkしたリポジトリをcloneしたディレクトリで

    githubでforkしたリポジトリにfork元の変更をmergeする方法
  • Git 1.8.3 について知っておくべきこと | Atlassian Japan 公式ブログ | アトラシアン株式会社

    あなたが git をコマンドラインで使っていようと、SourceTree などのツールから使っていようと; また、コードを Bitbucket にホスティングしていようと、Stash で会社のファイアウォール内側にホスティングしていようと、もしあなたが私のようであれば git がリリースされたときはいつでもパーティーをするでしょう – ウィンク –。 Git ユーザーにとってスムーズなアップグレード方法 git 1.8.3 がリリースされました。もちろん、これは最新バージョンへのアップグレードを意味しています。これは比較的、簡単であるべきです: もし OSX 上で homebrew を使用している場合は単に brew update && brew upgrade git とタイプするだけ (OSX 上で .gitignore を解析中に、直前に発見されたバグにより、 homebrew はア

    Git 1.8.3 について知っておくべきこと | Atlassian Japan 公式ブログ | アトラシアン株式会社
    aki77
    aki77 2013/06/08
  • git 1.7.12でUTF8-MAC問題が解決 | Butaman-kun Project

    gitの唯一の弱点は日語ファイル名に弱いことだ。 つい最近WindowsではUTF-8ファイル名に対応したが、MacではUTF8-MAC(UTF-8-MAC)問題という持病を抱えていた。 このため、WindowsLinuxで濁点、半濁点とかの入った日語ファイル名のファイルを含むリポジトリを作成し、Mac上にcloneすると、次の画像のようにこれらのファイルをリポジトリ内のファイルとして見なしてくれないと言う問題があった。 日語ファイル名が使えなかった旧バージョンのgit 簡単に説明すると、ファイル名の見た目はLinux等と一緒だが、文字コード的に濁点の扱いが微妙に違うためである。ある意味、文字化けの類の問題である。この説明はかなり端折っていて不正確なので、技術的な詳細はこちらを参照して欲しい。 これまで、解決するにはnfsをマウントする方法や、パッチはあったが、家では取り込まれて

    aki77
    aki77 2013/06/05
  • git push で自動デプロイ時に git pull は使わない方がいいかもしれない - murankの日記

    heroku みたいな git push で自動デプロイする方法として、よく post-recceive フックで git pull する方法が載っているけど、 自分の場合、それがうまくいかなかったことがあったのでメモ。 よくある post-receive フックの内容は以下の通り。 #!/bin/sh ( cd /path/to/repository git --git-dir=.git pull origin master ) 普通の使い方をしている限り、この方法で問題なく動作する。 が、うっかり git push -f してしまうといろいろとややこしいことになる。*1 というのも、git pull は結局 git fetch + git merge でしかないので、(当はなかったことにしたい) 以前の HEAD と新たな HEAD をいい感じにマージしてしまうからこんなことになる。

    git push で自動デプロイ時に git pull は使わない方がいいかもしれない - murankの日記
    aki77
    aki77 2013/06/05
  • 図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ

    git-merge の--ff, --no-ff, --squashの違いをまとめてみた。 git helpから引用 まずは、git helpを読みましょう git merge --helpから引用(抜粋) NAME git-merge - Join two or more development histories together SYNOPSIS git merge [-n] [--stat] [--no-commit] [--squash] [-s <strategy>] [-X <strategy-option>] [--[no-]rerere-autoupdate] [-m <msg>] <commit>... git merge <msg> HEAD <commit>... git merge --abort OPTIONS --ff, --no-ff Do not gene

    図で分かるgit-mergeの--ff, --no-ff, --squashの違い - アジャイルSEを目指すブログ
    aki77
    aki77 2013/06/04
  • powerful-code.com-蒙城县郭侠熟食有限责任公司-网站

    aki77
    aki77 2013/06/04