私はgitを使い慣れていません。私がやったことは、私が関心を持っているいくつかのリポジトリをフォークし、それを自分のコンピュータ上でクローンしてそれらと一緒に作業することです。リモートgitリポジトリからの変更を引き出す
私のローカルコピーを混乱させるために、元のプロジェクトの一部が大幅に更新される場合があります。または、私は若干の変更を加えることがあります。
私が理解していることから、私は自分のクローンを元に戻して "元に戻す"ことができます。
これは私の変更にどうしますか?たとえば、元のファイルDoSomething.cpp
があるとします。私はそれを修正し、小さなバグを修正したり、機能を追加することができます。今すぐ! 1年後、元のプロジェクトは多くの改訂を経て、はるかに優れています。私はそれらの変更を私のクローンに "プル"したいが、私の変更も維持する! (これは一種のプッシュの逆です)
これは簡単ですか?もしそうなら、基本的なアイデアは何ですか?
元のクローン(変更したもの)からのクローンの変更は上書きされませんが、私は実際に自分の変更と元の(フォーク上の)マージを行い、実際に変更を確認して受け入れることができます。 (例えば、DoSomething.cpp
がオリジナルで変更された場合、互換性があるかどうかを比較する必要があります)
私はフォークの所有者であるため、これは難しいことではありません。その後、私のフォークに私の地元の変更をプッシュ?(問題をバージョン管理のための巨大な可能性があるので、それはかかわらず動作するかどうかわからない)
'git pull --rebase'は変更をヒューリスティックにマージしようとします。それができなければ、それは失敗し、合併をしなければならないとあなたに伝えます。 –
@larsmans:だから、私は、rebase、警告、私に問題を見せてくれるかもしれないツールを必要としていると思います。つまり、すべてまたは何もプロセスをリベースしていますか? – jsmdnq
Gitが既に行っていることはまったく同じです。あなたはスクラッチレポでそれを試してみませんか? –