web-dev-qa-db-ja.com

リモートにプッシュするときにGit pullからのマージコミットを回避する方法

リポジトリとコミットするローカルの変更がいくつかあります。コミットする前に、EclipseでEgitを使用して変更をローカルにプルしました。

マージコミットを作成し、コミットを送信します。

今、Originにプッシュしようとすると、コミットとマージコミットがプッシュされることが示されています。しかし理想的には、マージコミットはリモートリポジトリの一部であってはなりません。

これを避ける方法は?

21
jazz199

リモートリポジトリからプルするときはいつでもリベースオプションを使用してください。以下の手順に従ってください、

  1. 変更をコミット-ローカルに新しいコミットを作成します。
  2. git pull --rebase <remote-name> <branch-name>
  3. 基本的に、リベースは、現在のブランチでコミットしたコミットを取り出しますHEADパッチとして。その後、HEADとその後、その上にコミットを適用します。
  4. したがって、ベストプラクティスは、変更をコミットしてから、リベースオプションを使用してリモートコミットをプルすることです。
37
Mohanraj

コミットされていない変更がある場合は、次のことができます。

git stash
git pull --rebase <remote> <branch>
git stash pop
7

走れます

git config --global branch.autosetuprebase always

git pull --rebase git pullのデフォルトの動作。

4
CodeKid

通常の戦略は、ブランチで作業することです。リモートマスターが変更されたら、変更をマスターにプルし、ブランチをマージする代わりにrebaseします。

Atlassianで Git Rebase を参照してください。

3
choroba