ほとんどのコード統合はマージで行われますが、開発者が代わりにリベースを介してローカルコードをマスターブランチに追いつけたい場合があります。 この例では、mergeコマンドを使用する代わりにブランチをmasterにgit rebaseする方法を示しながら、git rebase to master操作を実行することの影響を指摘します。

Git rebase to masterとはどういう意味ですか?,

このチュートリアルでは、developという名前のブランチをmasterの先端にリベースします。

developブランチはcommit Cでmasterから切り離されたため、両方のブランチがファイルを共有しますa.html,b.html そしてc.html—– これを視覚化するには、以下の画像を参照してください。

ブランチが発生したので、マスターはDとEをコミット追加しました。d.html そしてe.html—–,

これは、gitリポジトリがマスターにリベースする前にどのように見えるかです。

さらに、分割以来、developブランチに二つの新しいコミットがあり、ファイルを追加していますf.html そしてg.html—– これらは、developブランチがmasterブランチにはないファイルです。

これはGitLabリポジトリがgitをマスターにリベースした後にどのように見えるかです。,

Git rebaseの影響

マスターリベースへのdevelopブランチが成功した後:

  • マスターブランチ内のファイルは変更されません
  • developブランチはマスターブランチの新しいファイルをすべて取得します
  • 開発ストリームのブランチポイントが変更されます。
    • マスターブランチでcommit E後にdevelopブランチが分割されたかのように表示されます。
    • リベースの前に、developブランチはコミットCでmasterから分割されます。,

Git rebase to masterコマンド構文

Git rebase to masterを実行する操作は簡単です。 コマンドの最後にソースブランチの名前を追加し、次にrebaseするブランチの名前を追加するだけです。 コマンドをマスターするために開発をリベースするには、次のようになります。

git rebase master develop

警告:git rebase on switchがあり、開発者がrebaseコマンドに含める必要があると誤って信じていることがあります。 そうすると、コミットが破棄され、ファイルが失われます。, Git rebase on操作を実行するのを間違えないでください。

リベースの前に、developブランチには五つのファイルしかありませんでした。

各ブランチには、gitがマスター操作にリベースする前に五つのファイルがあります。

Git rebaseをmasterにリベースした後、developブランチには七つのファイルがあります。 それは元のファイルをすべて保持し、masterブランチの先端から二つの新しいファイルを取得しました。, ただし、masterブランチ内のファイル数は変更されません。

developからmasterへのgitリベース後、developブランチはすべてのマスターのファイルを取得します。

masterブランチがdevelopブランチからファイルを取得しなかったという事実は、しばしば新しいGitユーザーをスローしますが、これは予想される動作です。 Git rebaseはブランチ間で同期しません。 では、単純について支店に変化します。,

gitがマスターにリベースした後、開発中のファイルの数が増加します。

慎重に進む

Gitリベースが発生すると、リポジトリのコミット履歴が回復不能に変更されます。 この例のリベースの後、コミットFとGにはまったく新しいコミットidが割り当てられ、古いコミットidは破棄されます。 このため、しばしば見rebasedする為の目印としてF’G’を強調し、この新しいコミットidの割り当てられます。,

別の開発者と共有しているブランチをリベースし、変更をGitHubまたはGitLabにプッシュすると、リベースされたリポジトリをローカル開発環境にプルしようとすると、仲間の開発者はさまざまな問題に遭遇することになります。 犯い地域によって、リモートのリモート支店においてできる支店。 ときを想像し、基準改定の共通支店りつぶGitを犯でwreak havok.,

GitHubまたはGitLabにリベースする

実際、リベースしてGitLabまたはGitHubにプッシュしようとすると、サーバーは操作の実行を許可しません。 GitHubまたはGitLabにリベースするには、開発者はgit pushコマンドに–forceスイッチを追加して、変更を受け入れるように強制する必要があります。

git push origin --force

GitLabまたはGitHub rebaseプッシュは、強制されない限り拒否されます。,

受け入れられるロジックは、git rebaseのみを個人的なワークスペースにローカルのマスターブランチにすることです。 そうすれば、Git clean upコマンドは他の誰にも影響を与えません。 他の開発者と共有されているブランチでgit rebase to masterを実行しないでください。 Masterへのリベースは問題ありませんが、逆の方法ではありません。 さもなければ、ビルドを破る可能性が高く、プッシュまたはプル操作はスタンバイに置かれ、継続的な開発を妨げ、残りの開発者とDevOpsチームとペルソナノングラータになります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です