2017-04-19 57 views
1

我当时在我的本地分支feature-branch上工作。我做了提交并将我的本地分支推送到远程。我做git status而事实证明,git change local ref

Your branch is 6 commits ahead of origin/master 

之后,我切换到另一个分支git checkout another_branch。在这个分支上工作后,我不得不回到我的特性分支,我这样做,通过git checkout feature_branch

在这之后我做了git status而事实证明,

Your branch is up to date with origin/feature_branch 

此前它与origin/master比较feature_branch。但现在它正在比较自己。我如何改变它以与origin/master进行比较?

回答

3

git status命令会执行一些有用的操作。其中之一是将当前分行的提示与其上游分行的提示进行比较。

你说一次,你在分支feature-branch,和git status相比,origin/master。因此,这意味着feature-branch上游设置为origin/master,就好像你运行:

git branch --set-upstream-to=origin/master feature-branch 

然后,以后(即现在),你又回到了上feature-branch,但git status它相比origin/feature-branch。因此,这意味着feature-branch上游设置现在为origin/feature-branch,就好像你运行:

git branch --set-upstream-to=origin/feature-branch feature-branch 

我注意到你提到:

我做提交[上feature-branch]推我的本地分支远程...

我猜,因为你没有这么一说,该方式你这样做要运行:

git push -u origin feature-branch 

查看-u在那里?这告诉git push,如果它成功地推动feature-branchorigin,创建或以其他Git的更新feature-branch到你是推,然后的Git应该变化feature-branch到相应origin/feature-branch,上游就好像你运行:

git branch --set-upstream-to=origin/feature-branch 

可以设置上游回origin/master,但是这通常不是一个好主意。现在有一个origin/feature-branch,你的Git用来记住feature-branchorigin的位置,最好将你自己的feature-branchorigin的那个进行比较。这是因为现在你有已发布你的提交,其他人也使用其他Git origin可能已经拿起他们。此外,为Viktor Seč mentioned,该设置默认为上游和git mergegit rebase(这是什么git pull运行下半年)。

如果要比较你feature-branch你自己master只是短暂和临时,考虑在运行命令:

git log --oneline master..feature-branch 

或:

git log --all --decorate --oneline --graph 

(查看它可以让所有您分支机构和远程跟踪分支,全部一次,具有一定的图形,以帮助你联系的提交)。

1

这取决于upstream。您可以设置为上行本地分支(服务器)分支

$ git branch --set-upstream-to=origin/BRANCH 

这也设置了默认目标您git pushgit pull

但我不认为你应该设置本地功能分支来跟踪远程主控。

0

为您的工作周围,它主要是由于你设置origin/master作为跟踪分行feature-branch起初,然后将跟踪分支为origin/feature_branch。步骤可以设置/更改跟踪分支:

  1. 通过git checkout -b feature_branch origin/master创建feature-branch
  2. 您可以通过git branch -vv查询与当地分行的跟踪分行关系。为feature_branch跟踪分支是origin/master在第一。
  3. feature_branch中进行更改并将其推送到git push -u origin feature_branch的远程后。
  4. 现在您将feature_branch的跟踪分支更改为origin/feature_branch。您可以通过git branch -vv检查。