特定のLinuxバージョン、たとえば2.6.25.4に対して完全に動作する一連の変更があります。gitを使って動くターゲット(Linuxなど)に対して変更を保存する
私はgitツリーを持ち、タグv2.6.25.4から追跡ブランチvanilla-2.6.25.4を作成しました。私は私の変更2.6.25.4と呼ばれるブランチを作成し、私のすべての仕事をしました。
ここでは、任意の新しいバージョンのLinuxの上に自分の仕事をリベースしたいと思います。 2.6.28.9と言ってください。これを達成するための最適なgitワークフローは何ですか?
私は2.6.28.9から新しいブランチを作成する方法を知っていますが、 'git merge my-changes-2.6.25.4'のようなことは、私が関心のない他のものからあらゆる種類の競合を与えます。とにかく壊れました。
私の変更my-changes-2.6.25.4から新しいブランチを作成し、git rebase 2.6.28.9を実行しました。これは2.6.25.4からの変更を受け取り、2.6.28.9の上に適用すると仮定していますがこれは、私が変えたものとは関係のない沢山の葛藤を私に与えました。
これを行う正しい方法はわかりません。私は安定したLinuxツリーhttp://www.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6-stable.gitを使用しています。バージョン管理されたタグv2.6.x.yがすべて同じ系列のものではないという事実から、いくつかの問題が生じると思います。
これを正しく行う方法を知っている人はいますか?インターフェースを変更してLinuxが自分のコードを壊した次の場所を見つけるためにバイナリ検索を使ってできるだけ自動的に前進する方法を考案した余地はありますが、実際に何をしようとしているのか分かったら想像します。 。
これは説明のために正しく感謝しているようです。私はあなたがサンプルコードで間違いを犯したと思います。実際に最初のチェックアウトを行うと、2.6.28.9に対して新しいブランチが作成されますが、これはローカルの変更が含まれていないため、リベースは意味をなさないでしょう。 'git checkout -b changes-2.6.28.9 v2.6.28.9'ではなく 'git checkout -b changes-2.6.28.9'に変更すると、何かが動作します。 私の最初の競合は正当なものであるため、動作しているように見えます。今、私は愚かな自動ガベージコレクションを待っています。なぜgitはJavaになろうとしていますか?私はできます... – nosatalian
ああ、私はそれが間違っていたと思って変更し、それは初めてのことだった。今朝はまだコーヒーが足りません。 私は "git gc"に長時間苦労したことはありません...しかし、私はいくつかのリビジョンを引っ張った後で手動で行うことに強く思っているので、自動起動されることはほとんどありません:) – araqnid