タグ

Tipsとgitに関するionisのブックマーク (6)

  • git push --force でなく git push --force-with-lease を使う - valid,invalid

    前に社内チャットで流れてて初めて知った。 他人の変更を上書きするおそれのある git push --force でなく、最後に fetch したタイミング以降に他人が push していたら失敗する git push --force-with-lease を使う方が良い。 --force considered harmful; understanding git's --force-with-lease - Atlassian Developers Quipper では GitHub flow のような開発フローを採用している。 各開発者が feature branch を作成し、master / develop branch へ pull request を作る流れだ。 他人と修正箇所が重なってコンフリクトした際には rebase が必要で、 rebase 後の内容を push する際には

    git push --force でなく git push --force-with-lease を使う - valid,invalid
    ionis
    ionis 2016/04/05
  • gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア

    以前gitで一度行った変更をなかったことにする方法4つを紹介しましたが、 日常的に git を使用していると他にも様々な 「なかったことにしたい」「元に戻したい」 という状況に遭遇します。 そのひとつひとつについて対処方法を紹介していきます。 目次 問題1: ライブラリの新機能を試すためにあれこれ適当なコードを書いてみた。でももう要らない。問題2: トピックブランチをマージしたけど実はまだ不完全だった。マージをやり直したい。問題3: リリース後に発覚したバグ。原因は30日前に自分が行ったコミットだった。なかったことにしたい。問題4: 新しいコミットしようとして間違えてgit commit –amendで書き換えてしまった。元に戻したい。問題5: 色々作業していたら作業ディレクトリの内容が混沌としてきた。一度綺麗な状態にしたい。問題6: 作業ディレクトリにゴミファイルが溜まってきた。一度綺麗

    gitでアレを元に戻す108の方法 | Webシステム開発/教育ソリューションのタイムインターメディア
  • 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 の内容は次のような感じ。以前のに足したところから、関係なさそうなところを消したので、余計なものが混

    ionis
    ionis 2013/07/16
  • git commit --amendとgit rebase - 煙と消えるその前に

    過去のコミットを変更する手順で定番(?)のamendとrebaseについてメモ ただコミットを戻したいだけならこっちの手順で戻せる gitであれこれ戻したい - 煙と消えるその前に 直前のコミットを変更する 今コミットしたんだけど、ちょっと修正足りてなかったって時 今のコミットがこんな感じであって $ git log --oneline 21b391b sixth commit 2d7fb42 fifth commmit 9994b0b fourth commit ファイル1つ変更してコミットしなおす $ echo "I forgot it" >> six.txt $ git add six.txt amendを使って直前にコミットを変更する エディタが立ち上がるのでコミットメッセージを良しなに変更する $ git commit --amend diffを見たら修正が入ってて、コミットのS

    git commit --amendとgit rebase - 煙と消えるその前に
    ionis
    ionis 2013/06/05
    ログを書き換える。
  • gitであれこれ戻したい - 煙と消えるその前に

    gitで何かを戻したい時、いつもどのコマンド叩くか忘れるのでメモ ワーキングツリーを元に戻す ファイル編集したけどまだaddしてない時 $ git checkout . $ git checkout -- . $ git checkout HEAD -- .どれもHEADの状態にワーキングツリーを戻してくれる。(結果が同じなだけで挙動は違うんだろうけど・・・) "--"が謎なんだけど、helpを見みるとこんな例があった。 If you have an unfortunate branch that is named hello.c, this step would be confused as an instruction to switch to that branch. You should instead write: $ git checkout -- hello.c なるほど、フ

    gitであれこれ戻したい - 煙と消えるその前に
    ionis
    ionis 2013/06/05
  • 仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記

    動機 Subversionで困ってない ぶっちゃけSubversionで全然困っていませんでした。 コードレビューはちゃんとやっていたし、マージ・ブランチングも自作シェルスクリプトのおかげてスムーズにやれていました。 よく「Gitはマージが賢い、ブランチ作成が一瞬でできる」とかいわれますが、Subversionだってちゃんと使えばコンフリクトなんかめったに起きないし、ブランチ管理・マージだって全然めんどくさくない。 特にver1.7からはサーバもクライアントも大幅に高速化されたし、.svnディレクトリが.gitみたいに1個になったし、rebaseみたいなことだってできる。(sync merge & reintegrate) ただ、世の中が一斉にGitにシフトしている中でいつまでもSubversionを使っててよいのかという不安がありました。 また、月から金までSubversionにどっぷり

    仕事で使ってる巨大SVNレポジトリをGithubに移管するためにやったことまとめ · DQNEO日記
  • 1