木魚ブログ

@sainoky

git-rerereでconflict自動解決したくないとき

merge前に気づいた場合、先に記録済み解決パターンを削除すればOK.

$ git rerere forget <pathspec>

気づかずmergeしてrerereで自動解決されちゃったけどconflict状態に戻したいときは

$ git checkout -m <pathspec>

でもやっぱりrerereがやってくれてたとおりに解決したい、となったら

$ git rerere

これで記録済みパターンをまた適用してくれる。

Repoメモ (1)

RepoはAndroid Open Source Project (AOSP)で使われている、Gerritを利用したワークフローをサポートするためのwrapper。実体はPython scriptです。

Repoコマンド実行すると実際何が起きるのか、リファレンスがあったら便利だなと思うことが最近多いので、気の向くままに書いていきます。

本家はここ-> Repo command reference | Android Developers

 repo init

  • このコマンドでさわるのは.repoの中だけ
  • .repo/manifestsのremote branch, tagをすべてfetch
  • -b <branch>指定されてたらcheckout
  • -m <manifest>指定されてたらシンボリックリンク.repo/manifest.xml貼り直し

repo sync

  • 管理下の全プロジェクト対象
  • remote branch, tagをすべてfetch
  • HEADは基本的にmanifestどおりの状態にcheckout (detached)
  • -d指定なくかつtopic branchにいる場合はrebase

repo start

  • topic branch作成 + checkout

 

repo upload/forall/status/info/prune/diff/downloadについてもそのうち書きます。

HOW-TOについては日本語だとこれらのサイトが詳しいです。