2016-03-22 26 views
6

私はGitのノブで、git pullgit rebaseの違いを知ろうとしています。誰かが、同じ目的を果たしていると感じているので、どのオプションを使用するかの例を提供することはできますか?Git Pull対Git Rebase

+0

ドキュメントを読もうとしましたか?スポイラー:彼らは同じ目的を果たしていない –

+0

私はドキュメントを読んだ。私が言ったように、私はノブで、学習を始めました。 – user4943236

+0

@TimCastelijnsあなたはPeterの反応を見ることができます。彼は、これらが密接に結びついていると明言していたので、混乱が生じ、私は疑問を投げかけた。あなたはdownvoteを削除することができます – user4943236

答えて

8

gitのプル - から取り出し、別のリポジトリまたはローカルブランチ GIT PULL

との統合基本的に、あなたの地元、例にリモートブランチを引いている:

git pull origin master 

を引っ張ってきますマスターブランチをローカルリポジトリに追加する

のgit-リベース - 更新上流の頭に転送ポートローカルコミット GIT REBASE

この1つは他のユーザーがリモートで行われた変更の上でローカルの変更を入れています。たとえば :

  • あなたはSOME-FEATURE
  • その間にあなたの友人は、他の機能に取り組んでいたし、彼は今、マスター

に彼のブランチをマージと呼ば例えば、ローカルブランチにいくつかの変更をコミットしています彼とあなたの変更を地元の支店で見たいと思っています。 だから、あなたはmasterブランチをチェックアウト:

git checkout master 

その後、あなたが引くことができます。

git pull origin master 

をして、あなたのブランチに行く:

git checkout SOME-FEATURE 

、あなたが取得するmasterをリベース行うことができますそれからの最新の変更とブランチを上にコミットする:

git rebase master 

もう少し明確になることを願っています。

12

git pullとは互換性はありませんが、密接に関連しています。

git pullは、現在のブランチの最新の変更をリモートから取得し、その変更をブランチのローカルコピーに適用します。一般に、これはマージによって行われる。すなわち、ローカル変更がリモート変更にマージされる。だからgit pullはに似ています。

リベースは、マージの代替方法です。 2つのブランチを組み合わせた新しいコミットを作成するのではなく、ブランチのコミットをもう一方のブランチの上に移動します。

マージ(git pull --rebase)の代わりにリベースを使用してプルできます。作成したローカル変更は、リモート変更とマージされるのではなく、リモート変更の上にリベースされます。

アトラシアンとしてはいくらか優秀documentation on merging vs. rebasingです。