タグ

Gitに関するtermin2のブックマーク (65)

  • git で複数のリモートリポジトリに一度に push したりする。 - D.

    git リポジトリの .git/config には remote origin となる URL がテキストで書かれている。 [core] repositoryformatversion = 0 filemode = true bare = false logallrefupdates = true [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = ssh://user@host/~user/git-bare/repo.git [branch "master"] remote = origin merge = refs/heads/master なお、これらの値は git config -l で参照することもできる。このうち remote.origin.url を書き換えることで pull/push の対象

    git で複数のリモートリポジトリに一度に push したりする。 - D.
    termin2
    termin2 2017/03/01
  • Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita

    ファイル編集がコンフリクトした場合 下記はよくある(忌々しい)コンフリクト画面ですね。 皆さんはコンフリクトのmergeはどんな方法でやっていますでしょうか? vimemacsで直接編集している方が多いイメージですが、実際開いてみると、下記のように差分が表示されていると思います。 この画面を見ただけではどのようにmergeすればよいのかわかりません。(Objective-CのARC/MRC双方の開発経験がある人は目をつぶってください・・) gitにはこのようなコンフリクトのmergeを支援するgit mergetoolコマンドが搭載されています。 このままEnterキーを押すと下記のような画面が立ち上がります。 画面幅の都合でフォントが小さいのですが、ここで「mergeしたい差分が作られる直前の状態」と「mergeしたい差分」に注目してみます。 この2つを見比べると、@propertyの

    Gitコンフリクト解消ガイド(git mergetoolの使い方) - Qiita
    termin2
    termin2 2016/01/12
  • git archive で指定ファイルを除外する

    git archive コマンドを使えばリポジトリをアーカイブできるみたいです。 けれど .gitignore とかはアーカイブにはいらないのでどーにかできないかな、と思っていると tar とかでフィルタする 方法があるらしい。 けれど Mountain Lion にデフォルトで入っている tar には --delete オプションが無い様子。 で、もう少し調べると .gitattributes  なるものがある様子。 これを書いているとファイルに対していろいろと設定できるらしく、 export-ignore と書いているとarchiveに含まれなくなるみたい。 .gitignore 除外のための .gitattributes の例はこんな感じ .gitattributes を書いて実際にアーカイブを試してみるけれど $ git archive HEAD -o archive.tgz だと

    termin2
    termin2 2015/07/13
  • git show-branch を使っていないだなんて! - Qiita

    「オレは git の alias こんな風にしてるぜ!」っていう投稿とかブログ記事、よく見かけるし実際かなりお世話になっている(ありがとうございます)。…のだが。 誰も git show-branch のエイリアスを設定していなくて信じられない。そんな Git 歴 3 ヶ月の私が通りますよ。 $ git sb * [master] Add 'git show-branch'. ! [fixes] Introduce "reset type" flag to "git reset" ! [mhf] Allow "+remote:local" refspec to cause --force when fetching. --- + [mhf] Allow "+remote:local" refspec to cause --force when fetching. + [mhf~1] Use

    git show-branch を使っていないだなんて! - Qiita
    termin2
    termin2 2015/07/08
  • Gitでコミット間の差分ファイルを抽出する - [´・[ェ]・] <もももっもっ

    やりたい事 コミットとコミットの間で変更があったファイルだけを抽出したい。 差分ファイルだけ集めて提出、なんてよくあるよね。 まず git config --global core.quotepath falseを設定。 これを設定すると、git diff --name-onlyで取得するファイル名が日語も使えるようになる。 上記の設定がtrueだとgit archiveを実行時に失敗する。 git archive --format=zip HEAD `git diff リビジョン --name-only --diff-filter=AM` -o ファイル名.zipで差分の詰まったzipファイルが生成できる。 リビジョンの部分にはgit log等で得られるリビジョンやブランチ名を指定する。 --formatで他の形式(tarとか)にも変更可能 -oオプションでファイルを生成してくれる g

    Gitでコミット間の差分ファイルを抽出する - [´・[ェ]・] <もももっもっ
    termin2
    termin2 2014/12/02
  • バージョン管理したくない作業用スクリプトは「,」ディレクトリに入れるといい - Qiita

    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 は悪くないが、コミットすべきファイルにもアンダースコアで始まるものがあって紛らわしい。 そこで、作業

    バージョン管理したくない作業用スクリプトは「,」ディレクトリに入れるといい - Qiita
    termin2
    termin2 2014/10/28
  • いざという時のためのgit reflog - Qiita

    Git Advent Calendar / Jun. 29日目の記事です.28日目は@uasiさんの「どこでも使える git diff と git apply」でした. 「間違ってマージしていないブランチを消した」「reset --hard HEAD^*で戻しすぎた」ということがたまにある. しかしgit reflogを使うと(GCされていなければ)過去のあらゆるコミット履歴を見ることができ,git logやgit branchでは辿り着けない時点まで戻すことができる. $ git reset --hard HEAD^^ # HEAD^と指定するつもりが間違えた! $ git reflog f5cb888 HEAD@{0}: head^^: updating HEAD b0b8073 HEAD@{1}: merge @{-1}: Merge made by the 'recursive'

    いざという時のためのgit reflog - Qiita
  • Git初心者が絶対に覚えておくべきコマンド - idesaku blog

    Gitの使い方を覚えるにあたって、まず知っておきたいのは――git-cloneだのgit-commitだのは当然として――「操作をミスったときにどのように回復するか」である。それを実現するのは、次の3つのコマンドだ。 git-commit --amend git-reset git-reflog git-commit --amend あるファイルをコミットしたとしよう。 $ (edit...) $ git commit -am 'メッセージ生成処理を実装したよ。'しかし、しばらくして彼は気づいた。 def create_massage(param) ...typoしてる!massageじゃない、messageだ!マッサージを作ってどうする! 慌てるな。まずは直してステージに上げるんだ*1。 def create_message(param) ...$ git add .そして…。 $ gi

    Git初心者が絶対に覚えておくべきコマンド - idesaku blog
  • リポジトリごとに user.name や user.email の設定を強制する - Qiita

    社内やオープンソースのプロジェクトに並行して参加していると、gitconfig の user.name や user.email をリポジトリごとに切り替えたくなることがある。リポジトリを作るたびに git config user.name "My Name" すればいいのだが、 user.name が存在しないか空文字列だと環境変数 NAME の値を暗黙的に使う仕様になっているため、設定をうっかり忘れてしまうとなかなか気づけない。名前やメールアドレスを間違えたまま何度もコミットしてしまうと修正が厄介である。 Git 2.8以上 最近の Git で設定忘れを未然に防ぐには git config --global user.useConfigOnly true を実行する。これを設定するとユーザー情報について環境変数を暗黙に参照することがなくなる。グローバルな gitconfig で use

    リポジトリごとに user.name や user.email の設定を強制する - Qiita
  • ブランチ名 + 作業状態 + stash数 をzshのプロンプトに表示 - Qiita

    uasiさんの ZshでGitのカレントブランチを右プロンプトに表示。コミット済みのきれいな状態だと緑色、未コミットの編集がある場合は赤色で表示される。 を愛用されている方は多いと思います。これを使うと 作業ブランチ 未コミットファイルの有無 mergeやrebaseの途中であるか が分かりますが、僕はこれに加えてstashの数が分かるようにしています。方法は zsh で git の stash の数出すようにしたら便利だった。 を見て知りました。 最終的な .zshrc の設定は以下のようになります。 # git stash count function git_prompt_stash_count { local COUNT=$(git stash list 2>/dev/null | wc -l | tr -d ' ') if [ "$COUNT" -gt 0 ]; then ech

    ブランチ名 + 作業状態 + stash数 をzshのプロンプトに表示 - Qiita
    termin2
    termin2 2014/03/17
  • gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita

    git diffを見やすくする git diff --color-words で差分を小さく表示する 通常のgit diffは行単位なので、例えば変数名を一括変更した場合見づらいです。 --color-wordsを指定すると記号やスペースで区切られた単語単位でのdiffを表示できます。gitの設定は不要です。 より細かな表示のカスタマイズも可能です。man git-diffで--word-diffを検索してみてください。 ※ただし、変更が複雑な場合は、通常のgit diffのほうが見やすいこともあります。 .gitattributesを設置してもっと小さく表示する .gitattributesファイルを設置することで、言語文法に基づいて変数名、関数名といった単位でdiffを表示できます ファイル設置後にgit diff --color-wordsとすると、下記のようにさらに小さく表示できま

    gitのdiff, status, logを極限までコンパクト化+便利化する - Qiita
  • 横着で神経質な私とあなたに贈るgit add -p - Qiita

    特技はgit commit -a -m いろいろ修正です! ダメ。ゼッタイ。 しかしこまめにコミットするのは面倒臭いですよね。でもrebaseやらrevertやらcherry-pickするにもコミットログは綺麗にしたい。そんなズボラで凝り性なあなたはgit add -pでコミットを整えるといいと思います。

    横着で神経質な私とあなたに贈るgit add -p - Qiita
  • https://qiita.com/takashibagura/items/6d03cdd9ab2f88df828d

  • git ready » コミット数のカウント

    自分がどれだけのコミットでプロジェクトに貢献してきたかのか、と考えたことはありますか?もしくは、同僚の誰が何にもしていないか(または、かなりの変更をしてるのに、少数のコミットかも)。それなら、考えるのはやめましょう。@git shortlog@でそれらが分かります。 私は以下のコマンドを、このブログを作るのに使われている"jekyllのクローン":http://github.com/qrush/jekyll で実行しています。 $ git shortlog -s -n 135 Tom Preston-Werner 15 Jack Danger Canty 10 Chris Van Pelt 7 Mark Reid 6 remi 3 Mikael Lind 3 Toby DiPasquale 2 Aristotle Pagaltzis 2 Basil Shkara 2 John Reilly

  • git を https 経由で使うときのパスワードを保存する - Qiita

    git を https 経由で使う場合、pull や push のたびに毎回パスワードを聞かれてしまいます。 これを改善するには git-credential を使うと良いです。 git-credential は git 1.7.9 以降で使用可能です。 なお、古いやり方としては .netrc を使う方法もありますが、パスワードを平文でファイルに保存するので、やらないほうがいいと思います。 使用可能な管理方式 git-credential では、以下のような方法でユーザ名とパスワードを管理できます。 git-credential-store : ファイルに保存します。ただし、パスワードが平文が保存されます。 git-credential-cache : 常駐プロセスに記憶させます。 git-credential-osxkeychain : Mac OS X のパスワード管理を使います。 G

    git を https 経由で使うときのパスワードを保存する - Qiita
    termin2
    termin2 2013/12/09
  • git credential helperを使ってHTTP越しで認証がかかっているリポジトリにアクセスする

    HTTP越しでリポジトリにアクセスする際、認証がかかっていると、毎回ユーザ名とパスワードを入力する必要がある。 Basic認証がかかっているリポジトリにgit・hgでアクセスする際、ユーザ名とパスワードを保存する方法 | misty-magic.h のように.netrcを使うことで入力の手間を省くことができるが、Git 1.7.9以降であれば、credential helperを使うことで同様のことができる。 git credentialコマンドの存在確認 $ git help -a|grep credential- credential-cache credential-cache--daemon credential-store git-credential-storeとgit-credential-cacheがあるのが確認できる。 credential-cache–daemonはgi

    git credential helperを使ってHTTP越しで認証がかかっているリポジトリにアクセスする
    termin2
    termin2 2013/12/06
  • Mac で使える git mergetool をいろいろ試してみる - 準備編 | そんなこと覚えてない

    この記事は すごい広島 #6 での活動の一部です。 Git で branch をマージしたときにコンフリクトが起きると、これを解消する必要があります。テキストエディタでがんばるのはつらいこともありますよね。 そんなとき、マージするためのツールを使いたい場合もあります。 Git に git mergetool というコマンドがあって、設定しておいたツールを起動することができます。 同様に 差分を見るのにGUIツールを使いたい場合などには git difftoolというコマンドもあります。 基的には Mac で使えるものを紹介しますが、マルチプラットフォームのもあるので、別の環境でも使えるものもあります。 試したツール opendiff - 無料 Xcode に添付されている p4merge - 無料 Qt ediff(emacs) - 無料 Kaleidoscope - 有料 - Coco

  • gitで"svn cat"のように過去のリビジョンのファイルの中身をみるコマンド - すぎゃーんメモ

    ずっと知らなくて、今日調べて初めて知ったのでメモ。 gitで過去のバージョンを取り出す - ひこにっき - tenmonグループ より git cat-file -p <SHA1 object name>:<path> 追記 @hokaccha先輩から git show <SHA1 object name>:<path>でも同じことできるよ、と教えていただいた! ありがとうございます >< gitで過去のリビジョンとか別のbranchのファイルを見る - Webtech Walker こっちの方が余計にオプションもつけずに済むし便利かも!

    gitで"svn cat"のように過去のリビジョンのファイルの中身をみるコマンド - すぎゃーんメモ
    termin2
    termin2 2013/11/06
  • git diff の使い方がほんの少し理解できた - murankの日記

    いままでなんとなく使ってきたけど、ようやく使い方が分かったような気がするのでメモ。 前提知識 インデックスとワーキングツリーが理解できていること HEAD が何か分かっていること git diff ワーキングツリーとインデックスの差分を表示。 git add した後にさらに修正したけど、そういえばどの時点で git add したのかなー、というときに使う? git add したらすぐにコミットする自分には関係なさそう。 git diff --cached HEAD とインデックスの差分を表示。 git add して、コミットする前に差分を確認したい時に使うんだと思う。 自分は git diff よりもこっちの方をよく使う。 git diff HEAD HEAD とワーキングツリーの差分を表示。 前にコミットした時からどれくらい編集したか確認したい時に使う。 HEAD の部分はコミット(HE

  • git rebaseを使うときのルール | Yakst

    Re: [git pull] drm-next Linus Torvalds Sun, 29 Mar 2009 14:48:18 -0700 (訳注 : Daveのrebaseのやり方が好みでないというLinusに対して) > 2009年5月29日(日曜日) Dave Airlieの発言 > > 今から自分がしようとしているのは、直線じゃないツリーを送ろうとしているだけだ。 > パッチを自分の次のツリーにマージする時はいつでも、そこにそれがあるからだ。 > 自分は、Ericのツリーを自分のツリーに直接プルして、その結果を送ろうとしている。 > きれいなマージ履歴について注意しているとは思っているけど、前に言ったように、 > カーネルツリーに関してのドキュメントが何もない状態では、君がどうしたいのか > 当のところは今の今まで分からないよ。 自分が求めているのは、きれいな履歴だ。でも、それ

    git rebaseを使うときのルール | Yakst