質問
だからGitとMercurialを垣間Git.
を利用したいのmq延長Mercurial幅広く管理現地のパッチを探しています。
べんGit支店?やがより良い管理方法についての現地のパッチを簡単に適用を除去し、パッチ?
おかげさ
解決
チェックアウト"パッチの管理インタフェース層の タの図式に基づツール ページGit Wiki.が掲載につパッチの管理インタフェースとほぼ同Mercurials'mq' 延長:
- StGIT (積層Git)、高齢の両で記述されたPythonを使用してスナップショットを代表するパッチ
- 罪 (旧'gq')は、シリーズのバスクリプト、シリーズのファイルのパッチをして、簡単にファイルとして格納されているテキストファイルです。
- pg(海洋Git) 推奨されていません, は、適用されます。
が必要がない場合より高度な利用、利用できる代わりに"git rebase--対話"双方向の内部状態を表示します、スカッシュ分割ます。管理のお店に対し現在のバージョンの上流、"git rebase"普段は言わずもがなである。
他のヒント
免責事項:私はHGのユーザーではないので、私はHGについて読んだことがあるが、それを使用しての多くの最初の手の経験を持っていない。
。gitのは(そしてさらにいくつかの非常に複雑)、ネイティブのgitが十分に強力な例を使用する基本的なものです多くのためのように、「パッチキュー」スタイルに支店を管理するためのいくつかの非常に強力で柔軟なツールを提供しています。
一般的に、ほとんどのプロジェクトが唯一の新しいコミットを取得して、「巻き戻さない」ん中央の安定masterブランチを保つように固定されているマスターブランチにコミットします。
この保守(または開発者)の上に安定したブランチに基づいている(すなわち、コミット)作業中のパッチの1つ以上の流体分岐を維持することができる。
一般的なパッチ管理活動が含まれます:
最新の安定版ブランチ上にパッチキューをリベース - 利用git rebase
、
古いmaintentance・ブランチへのパッチキューを複製 - 利用git branch
とgit rebase
、
キュー内のパッチを並べ替え - キューの順序を変更するために、テキストエディタを使用して(git rebase --interactive
別名)git rebase -i
を使用する
パッチを退治 - スカッシュディレクティブでgit rebase -i
を使用する
変更するパッチまたはパッチがコミットメッセージ - 編集ディレクティブで(?テーマを見つける)git rebase -i
を使用する
どのような方法(すなわち、その内容、説明又は親子)にパッチを変化させる任意の活動は、新しいそのパッチの新しいコミットIDとコミットを作成します。古いコミットが捨てられ、それらが安定したマスターブランチに昇格する前に、定期的に交換することができるという事実は、それらの「パッチキュー」のではなく、分岐作る唯一のものですが、これは、プロジェクトの大会ではなく、任意の物理的な違いですコミットを構成するデータインチgitのに彼らは同じオブジェクトです。
コミット「本当の」にパッチを促進するためには、単にキューの先頭にパッチを移動し、masterブランチにそれをマージしています。キューの先頭にパッチを移動した後、それだけで同じであるように、通常のようにコミットパッチを指すようにだけ早送りmasterブランチのポインタを、それをマージし、masterブランチをもとにコミットます。
これは、それが変更されませんコミットされるようになりましたし、プロジェクトの不変の歴史の一部であるこれは「安定した」マスターパッチとしてコミット発行すると言う行為です。
ただ、枝を使用し、定期的に上流分岐に対してそれをリベース。これは、管理が容易と(私は過去のデータを失ってしまった先の)MQを使用するよりも安全でもあります。
Gitは本当にこの機能自体を提供していません。あなたの用途に応じて、「Gitのスタッシュ」および/または枝とによって得ることができるかもしれませんが、それはかなり基本的なことでしょう。人々は、より高度なパッチ管理はgitのに必要がある場合、彼らはキルトやStGitに向けるように見える:参照ます。http:// git.or.cz/gitwiki/PatchManagementする