2013-10-25 87 views
0

我有一個帶有跟蹤遠程分支的本地倉庫。我想創建一個新的分支,它繼承了遙控器,因此我可以將新分支推送到遙控器。如何創建一個繼承父級遠程的新分支

  1. 而在追蹤的本地分支,我們希望在新的分支,但不想推。

    git的結帳-b myNewBranch

  2. 推分支到遠程

    混帳推-u RemoteRepo myNewBranch

目前我有先設定遙控器上的新分支遠程回購。

+0

的Google用戶,你可能想:http://stackoverflow.com/questions/29030327/git-create-branch-and-inherit-upstream-of-current –

回答

2

我發現你的問題措詞有點混亂,但讓我們看看這是否正確。

  1. 您有從某臺機器克隆的回購repoO
  2. repo中,您有一個本地分支b,該分支正在跟蹤origin/b,即O上名爲b的分支。你在上面(git checkout b)。
  3. 您現在要創建一個新分支nbO上沒有分支nb
  4. 您想nb跟蹤不存在的分支origin/nb

最後一步是不可能的(但),因爲origin/nb還不存在。您必須先創建它(如上面的git push -u命令)。按-u將在O上創建nb,同時(本地)創建origin/nb並將nb的上游分支設置爲origin/nb

請注意,如果您嘗試設置上游:

$ git checkout -b nb 
... optionally, add various commits here ... 
$ git branch --set-upstream-to=origin/nb 

,你會得到一個錯誤:

error: the requested upstream branch 'origin/nb' does not exist 
hint: 
hint: If you are planning on basing your work on an upstream 
hint: branch that already exists at the remote, you may need to 
hint: run "git fetch" to retrieve it. 
hint: 
hint: If you are planning to push out a new local branch that 
hint: will track its remote counterpart, you may want to use 
hint: "git push -u" to set the upstream config as you push. 

因此,你必須做你上面建議的到底是什麼,並且在顯示在 「提示」 S:

$ git checkout -b nb 
... optionally, add various commits here ... 
$ git push -u origin nb 
Counting objects: 10, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (4/4), done. 
Writing objects: 100% (7/7), 633 bytes | 0 bytes/s, done. 
Total 7 (delta 2), reused 0 (delta 0) 
To ssh://[redacted] 
* [new branch]  nb -> nb 
Branch nb set up to track remote branch nb from origin. 
+0

這是完全正確的。問題是,當我做git push -u原點/ nb時,nb分支還沒有原點設置,即使原點設置爲原點/ b。 – Kenoyer130

+0

bah我只是做了一個測試,它的工作。其他人的回購必須有錯。 – Kenoyer130

0

如果您有未提交的更改(與git status檢查),只是通過指定在第二個參數的出發點檢查出的遠程分支:

git checkout -b mybranch remote/rembranch 

這將創建分支mybranch,從remote/rembranch開始。

+0

在我們的例子中,本地分支在新的分支中有我們想要的本地提交,所以只要將它從遠程設備上移除就行不通了。 – Kenoyer130

+0

好吧,所以你需要重新分配你的分支:只需從你的本地分支中執行'git rebase remote/branch' – CharlesB

相關問題