私はGitのでnoobのだ、との違いを学ぶしようとしてgit pull
対をgit rebase
。どちらも同じ目的を果たしていると思うので、誰かがどのオプションをいつ使用するかの例を提供できますか?
私はGitのでnoobのだ、との違いを学ぶしようとしてgit pull
対をgit rebase
。どちらも同じ目的を果たしていると思うので、誰かがどのオプションをいつ使用するかの例を提供できますか?
回答:
git pull
そして、git rebase
互換性がありませんが、それらは密接に接続されています。
git pull
リモートから現在のブランチの最新の変更をフェッチし、それらの変更をブランチのローカルコピーに適用します。通常、これはマージによって行われます。つまり、ローカルの変更がリモートの変更にマージされます。にgit pull
似ていgit fetch & git merge
ます。
リベースはマージの代替手段です。2つのブランチを組み合わせる新しいコミットを作成する代わりに、一方のブランチのコミットをもう一方のブランチの上に移動します。
マージ(git pull --rebase
)の代わりにリベースを使用してプルできます。行ったローカルの変更は、リモートの変更とマージされるのではなく、リモートの変更に基づいてリベースされます。
アトラシアンには、マージとリベースに関する優れたドキュメントがあります。
git-pull-別のリポジトリまたはローカルブランチからフェッチして統合する GIT PULL
基本的には、リモートブランチをローカルにプルしています。例:
git pull origin master
マスターブランチをローカルリポジトリにプルします
git-rebase-更新されたアップストリームヘッドGIT REBASEへのフォワードポートローカルコミット
これは、他のユーザーがリモートで行った変更の上にローカルの変更を置きます。例えば:
SOME-FEATURE
今、あなたは彼とあなたの変更をあなたのローカルブランチで見たいと思っています。それであなたはmaster
ブランチをチェックアウトします:
git checkout master
それからあなたは引っ張ることができます:
git pull origin master
そしてあなたはあなたのブランチに行きます:
git checkout SOME-FEATURE
そして、リベースmaster
して最新の変更を取得し、ブランチのコミットを上に置くことができます:
git rebase master
もう少しはっきりしているといいのですが。
git fetch
それからgit rebase origin/master
。