2013-09-25 62 views
5

我目前正在開發一個團隊項目,其中包含許多遠程分支。我從我們主人的分支克隆了這個項目。現在,我已經在本地對該項目進行了更改,我想推它,但爲了避免將其推送到項目主遠程分支,我想在本地創建一個新分支,並將此分支推送到遠程。如何在Git中謹慎推送新分支

整體的想法,並不是把我的本地版本的項目粉碎成主要的遠程項目。我只需要我的分支是分開的。

所以,我猜我會首先做

git checkout -b my_new_branch

然後

git push -u origin my_new_branch

請問這樣的保證,我的分支將不會與任何人的混合?

回答

1

在你的例子中,你推送一個本地分支到遠程倉庫。這樣分支將從master分支中分離出來。

所以除非其他人自願push在你的分支它不會混合任何人的。

+0

那麼,製作本地遙控器並按照我所說的方式推動它並不會給其他人帶來問題? btw:當我們在遠程源列表中執行'git remote show origin'時,我們能看到本地分支嗎?因爲我看不到我的。 – ANW

5

-u選項設置您的存儲庫中的默認值,以跟蹤的origin。因此,默認情況下,pushpull將使用originmy_new_branch。此後,您將不需要提供這些參數。這裏是一個例子:

$ mkdir foo; cd foo; git init; touch README; git add README; git commit -m 'README' 
Initialized empty Git repository in /private/tmp/foo/.git/ 
[master (root-commit) 03f3d46] README 
0 files changed 
create mode 100644 README 

$ cd ..; git clone foo bar; cd bar 
Cloning into 'bar'... 
done. 

$ git checkout -b my-br 
Switched to a new branch 'my-br' 

$ touch INSTALL; git add INSTALL; git commit -m 'INSTALL' 
[my-br 627d6db] INSTALL 
0 files changed 
create mode 100644 INSTALL 

$ git push -u origin my-br 
Counting objects: 3, done. 
Delta compression using up to 16 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (2/2), 245 bytes, done. 
Total 2 (delta 0), reused 0 (delta 0) 
Unpacking objects: 100% (2/2), done. 
To /tmp/foo 
* [new branch]  my-br -> my-br 
Branch my-br set up to track remote branch my-br from origin. 

$ touch Makefile; git add Makefile; git commit -m 'Makefile' 
[my-br f2390c1] Makefile 
0 files changed 
create mode 100644 Makefile 

$ git push 
Counting objects: 3, done. 
Delta compression using up to 16 threads. 
Compressing objects: 100% (2/2), done. 
Writing objects: 100% (2/2), 255 bytes, done. 
Total 2 (delta 0), reused 0 (delta 0) 
Unpacking objects: 100% (2/2), done. 
To /tmp/foo 
    627d6db..f2390c1 my-br -> my-br 

請注意,最後git push使用正確的默認值。 主要的遠程存儲庫可以從您的存儲庫中粉碎它。

1

正如其他人指出的那樣。 你是絕對正確的。


只是爲了總結所有的細節。

所以,我猜我會首先做

git checkout -b my_new_branch 

這是正確的做法名稱爲my_new_branch創建新的分支。您將在主分支中所做的所有更改添加到此新分支。

然後

git push -u origin my_new_branch 

這然後創建原產被跟隨你的分理處辦理新的分支。 -u--set-upstream相同。更多信息在why always git branch --set-upstream驚人的答案。

從現在起,你可以在遠程倉庫使用git pushgit pull,你想與你的分支從本地存儲庫連接到遠程倉庫

請問這個保證,我的分支不會和任何人混在一起?

。您的主分支從推送(es)絕對安全。而且你的分支是混合代碼的安全,除非其他人推動這個分支。如果可以應用此條件可以肯定地說你的代碼不會與其他人的代碼混合