2017-08-31 15 views
0
$ git --version 
git version 1.7.1 
$ git branch -avv 
* master    017Fcc0 [origin/master] xxxx 
    remotes/origin/HEAD -> origin/master 

origin/masterはリモートマスターブランチパス名で、masterは自分のローカルブランチ名です。私は1つに複数の私のローカルコミットを結合し、最新のタイムスタンプでリモートサーバーに提出する必要があります。以下の3つのステップがうまくいきますが、オリジン/マスターの代わりにを使用する必要がある理由がわかりません。なぜ私はリベースのmasterの代わりにorigin/masterを使用する必要があるのですか

a) git rebase --ignore-date origin/master 
    b) git rebase -i origin/master 
    c) git push origin master:master 
+0

可能性のある重複しました[ "git rebase origin"対 "git rebase origin/master"](https://stackoverflow.com/questions/5963597/git-rebase-origin-vs-git-rebase-origin-master) – phd

答えて

3

あなたは1つに、複数のコミットを結合するために、原点/マスターを使用するは必要ありません。しかし、それは起源に関する歴史を上書きすることを避けるためにそれを行う良い方法です。 3abcde

5abcde Commit 5 [master] [HEAD] 
4abcde Commit 4 
3abcde Commit 3 
2abcde Commit 2 [origin/master] 
1abcde Commit 1 

そして、あなたの5abcdeにマスターポイントと原点/マスターポイント:あなたは歴史のように見える場合

例えば

、。 git rebase masterを実行すると、同じ位置に現在の位置(おそらくすでにマスタ)がリベースされます。

git rebase origin/masterまたはgit rebase 2abcdeを実行すると、あなたが持っているコミットを適用します(3,4,5)(2)コミット後に - あなたはフラグを指定した場合-iはあなたにスカッシュ/フィックスアップ/スキップ/言い替える/ドロップするオプションを提供します/コミット3,4,5をそれぞれ選択します。

Gitのドキュメントには、作品をリベース方法について説明する上で、実際には非常に良い私見です:https://git-scm.com/docs/git-rebase

おそらくそれはGitがリモコンに関してどのように機能するかについてより多くのビットを読み取ることができます:のhttps://git-scm.com/book/en/v2/Git-Basics-Working-with-Remotes

+0

起点/マスターポイント2abcdeに。 – q0987

関連する問題