2

了解しました。リモートで追跡され、このプロジェクトの全員で共有される開発ブランチがあります。

地元では、私はこれから分岐して、進行中の作業を行っています。ただし、その間に、別の開発者が変更をコミットして開発ブランチにプッシュし、ローカルブランチに反映させたいと考えています。 これはリベースする時ですか?

コミット履歴を維持したいので、単にローカルブランチを開発にコミットしてから、新しいブランチを開始したくありません。

私が理解しているように、リベースはHEADの開発ブランチを取得し、その上にすべてのコミットを再適用しますが、同じ行に変更を加えた場合、競合をスローすることなく他の開発者の変更を上書きしますか?

4

2 に答える 2

6

まず、フェッチしてから、リベースします。これを行うことで、他の人の変更を壊すことはありません。以前のバージョンではなく、彼の変更に対するデルタになるように、変更セットをやり直します。ログから不要で役に立たないマージメッセージを排除し、これが実際に開発履歴を表す方法である場合は、ログをより意味のあるものにします。

先に進み、リベースします。この場合、正しいことのように聞こえます。あまりにも多くの人が考えずにgitpullするだけです。

于 2012-10-16T22:06:36.847 に答える
5

はい、あなたは正しいです。リベースが開発ブランチの責任者になり、それにすべてのコミットを再適用します。

いいえ、競合をスローせずに他の開発者の変更を上書きすることはありません。競合する変更がある場合は、マージの場合と同様に競合を解決し(競合を修正し、git add修正のステージングに使用)、リベースに引き続き使用するように指示する必要がありgit rebase --continueます。

はい、これはリベースを行うのに適切な時期です。それが多くの人々の働き方です。プッシュされていないローカルコミットがあり、アップストリームコミットがある場合は、作業を続行するかパブリックリポジトリにプッシュする前に、ローカルコミットをリベースします。

于 2012-10-16T22:06:46.820 に答える