"3 superstitions concerning git rebase" In-house training material at Cybozu. Read less
絨毯爆撃pushの例 いまmasterブランチに、未プッシュのコミットがあるとします。 ここで、新たにbr1ブランチを作ってチェックアウトします。 $ git checkout -b br1 master $ git branch * br1 master br1ブランチでコミットを作ります。 echo hello >> hello.txt git add . git ci -m "add file" 引数なしでプッシュします。 git push すると、どこに何がpushされると思いますか? 実は、master -> masterにpushされます。 masterがまだpushできる状態でない場合、これはかなり痛い。すごく痛い。頭が頭痛でおなかが腹痛。 しかもpushしたかった当のbr1ブランチはpushされないというオチ。(リモートにbr1ブランチがない限りは) この挙動は大半のユーザ
git push/pullは何気なく使ってるけど実はよくわかってなかった。ことのきっかけはこういう質問。 hogeというリモートブランチをローカルのhogeブランチにもってきたい hogeをローカルのmasterにはマージしたくない pullでなんかこんな感じでいけそう? $ git pull origin hoge:hogeでもこれは間違えで、なぜか今いるブランチ(master)にhogeがmergeされるし、期待してる動作じゃない。正解はこう。 $ git branch hoge origin/hogeもしくはチェックアウトも同時にするなら $ git checkout -b hoge origin/hogeこう。自分は普段後者のやり方でやってたけど、なんで上のはダメで下のが正解なのか説明できなかったのでちゃんと調べてみた。 入門Gitと実用Git、あとhelpを参考にした。 ブランチ
先に結論 git remote add origin git://gabuchan.git git push -u origin master どういう場合に便利? git cloneすると.git/config が [remote "origin"] url = git://gabuchan.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/masterみたいになるので、git pushでorigin masterを省略できる。 ローカルでgit initしてリポジトリを先に作って、 ちゃっちゃか開発して、 「そろそろリモートにアップしとくかー」って感じでリモートを作って、 git remote addすることが多い。 ちょっと開発をはじ
Mislav Marohnićさんの "A few git tips you didn't know about" を翻訳しました。 元記事はこちら: http://mislav.uniqpath.com/2010/07/git-tips/ (翻訳の公開は本人より許諾済みです) 翻訳の間違い等があれば遠慮なくご指摘ください。 あなたの知らないGit Tips注意:いくつかのコマンドやオプションは Git の version 1.7.2 以降が必要です。 OS Xでは、 Homebrew で簡単にアップグレードできます: brew install git git log でブランチとタグも見る$ git log --oneline --decorate 7466000 (HEAD, mislav/master, mislav) fix test that fails if current d
以前gitで一度行った変更をなかったことにする方法4つを紹介しましたが、 日常的に git を使用していると他にも様々な 「なかったことにしたい」「元に戻したい」 という状況に遭遇します。 そのひとつひとつについて対処方法を紹介していきます。 目次 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。問題2: トピックブランチをマージしたけど実はまだ不完全だった。マージをやり直したい。問題3: リリース後に発覚したバグ。原因は30日前に自分が行ったコミットだった。なかったことにしたい。問題4: 新しいコミットしようとして間違えてgit commit –amendで書き換えてしまった。元に戻したい。問題5: 色々作業していたら作業ディレクトリの内容が混沌としてきた。一度綺麗な状態にしたい。問題6: 作業ディレクトリにゴミファイルが溜まってきた。一度綺麗
detached HEADって言う名前で入門Gitにも書いてあるんだけど、そういうことが起こりうるってメンタルモデルができてないと起きていることにすら気づかないので書いておく。 まず説明用のリポジトリを用意します。 t$ git init Initialized empty Git repository in /Users/nishio/gittest/pygit2/t/.git/ t$ touch a t$ git add a t$ git commit -m "add a" [master (root-commit) 6f6eb7c] add a 0 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 a t$ touch b t$ git add b t$ git commit -m "add b" [m
こんにちは、中川です。 Gitを使い始めてから、Subversionを使う機会がめっきり減ったこの頃です。 Gitだとローカルだけで簡単に使い始められるのもいいですが、気軽につくれるbranchや、mergeのしやすさがたまりませんね。 インストール直後の状態でも普通に利用できますが、 ちょっとした設定でさらに使いやすくなる方法をご紹介したいと思います。 ※今回ご紹介する内容はいずれも私のMacBook上での動作確認となり、Windows環境は考慮していませんがご容赦ください。 ■ユーザー名とE-mailアドレスの設定 まずは、最初にユーザ名と、メールアドレスを設定してしまいましょう。 $ git config --global user.name "yoshiki" $ git config --global user.email "yoshiki@example.com"
gitでは様々な方法でコミットログを書き換えることができます。 その一例として一度行った変更をなかったことにする方法を4つ紹介します。 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。 $ $EDITOR $ git commit -am 'foo' $ $EDITOR $ git commit -am 'bar' $ $EDITOR $ git commit -am 'baz' のように適当な区切りでコミットして行ったものの、 結局全部要らないからなかったことにしたいということはままあります。 解答1: git reset –hard HEAD~{n} コミットしたもの全てを歴史から消し去りたい場合は git reset --hard を使います。 この例の場合は3回のコミットを全てなかったことにしたいので、 以下のコマンドで消し去ることができ
id:bleis-tiftによるgitのフックスクリプト集がマジ便利。 gitとredmineを使ってる人はぜひ使うべき 機能 チケット番号付加 id/12というブランチで作業してるときは、コミットメッセージの末尾にrefs 12を自動でつけてくれます Redmineのチケットごとにブランチを切るようにすると、マジ便利 masterブランチへのコミット拒否 masterブランチへのコミットを拒否する 必ずトピックブランチを切るようになる pushされたときにチケットIDのないコミットの拒否 チケットIDのないコミットのpushを拒否します ダウンロード・インストール方法 https://github.com/bleis-tift/Git-Hooks に書いてある通りにすれば簡単にインストールできます
defunkt's gist at master ― GitHub http://github.com/defunkt/gist/tree/master gistコマンドラインツール - ロックスターになりたい http://d.hatena.ne.jp/ku0522/20081024/1224855262 アカウントの設定 アカウントを設定しない場合、書き込みをしたときにanonymousのgistになる。自分のgistとして登録したい場合、git configでアカウントの設定をする。設定に必要なのはgithubのユーザ名とAPIトークン。APIトークンはgithubのアカウントページで取得する。 Your Account ― GitHub https://github.com/account "Global Git Config"というリンクを押すと、下のようなコマンドが出てくるので
Git で日本語のコミットログを残している場合、msysGit で git stash や git rebase --onto を実行すると、 usage: git update-ref [options] -d <refname> [<oldval>] or: git update-ref [options] <refname> <newval> [<oldval>] -m <reason> reason of the update -d deletes the reference --no-deref update <refname> not the one it points to Cannot save the current statusと言われて失敗しまうことがありました。この回避策を調べたので書いておきます。バージョンは git version 1.7.0.2.msysgit
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く