2013-09-25 8 views
5

Ich arbeite derzeit an einem Team-Projekt, mit vielen Remote-Niederlassungen. Und ich habe das Projekt aus der Filiale unseres Meisters geklont. Nun, da ich Änderungen an diesem Projekt lokal vorgenommen habe, möchte ich es schieben, aber um es nicht in den Haupt-Zweig des Projekts zu verschieben, möchte ich lokal einen neuen Zweig erstellen und diesen Zweig auf Remote verschieben .Wie zu einer neuen Niederlassung in Git vorsichtig schieben

Die allgemeine Idee, ist nicht meine lokale Version des Projekts in das Remote-Hauptprojekt zu zerschlagen. Ich brauche nur meine Niederlassung, um getrennt zu sein.

Also, ich vermute, ich zum ersten Mal

tun

git checkout -b my_new_branch

dann

git push -u origin my_new_branch

Wird diese Garantie, dass mein Zweig nicht mit jedermann gemischt werden?

Antwort

1

In Ihrem Beispiel drücken Sie einen lokalen Zweig zum Remote-Repo. Auf diese Weise wird der Zweig vom Zweig master getrennt.

Also, wenn andere Leute freiwilligpush in Ihrer Branche wird es nicht mit jemandes gemischt werden.

+0

Also, eine lokale Fernbedienung zu machen und es so zu schieben, wie ich es gesagt habe, verursacht keine Probleme für andere? btw: Können wir den lokalen Zweig sehen, wenn wir 'rem Remote-Show-Ursprung 'in der Liste der entfernten Ursprünge machen? Weil ich meine nicht sehen kann. – ANW

5

Die Option -u legt die Standardeinstellungen in Ihrem Repository fest, um my_new_branch unter origin zu verfolgen. Daher werden sowohl push als auch pull standardmäßig origin und my_new_branch verwendet. Danach müssen Sie diese Argumente nicht mehr angeben. Hier ein Beispiel:

$ 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 

Beachten Sie, dass die endgültige git push die richtigen Standardwerte verwendet. Das Haupt-Remote-Repository ist sicher von Ihrem Repository und zerstört es.

1

Wie andere darauf hingewiesen haben. Sie haben absolut Recht.


einfach alle Details zusammenzufassen.

Also, ich vermute, ich werde zuerst

git checkout -b my_new_branch 

tun, die richtige Ansatz ist, zu Niederlassung schaffen mit Namen my_new_branch. Sie fügen alle Änderungen, die Sie in der Master-Verzweigung vorgenommen haben, zu dieser neuen Verzweigung hinzu.

dann

git push -u origin my_new_branch 

Dieser erstellt dann Ihre Niederlassung auf Herkunft, die mit Ihrer Niederlassung verfolgt wird. Die -u ist die gleiche wie --set-upstream.Mehr Infos in erstaunlicher Antwort für why always git branch --set-upstream.

Von nun an Sie git push und git pull auf Remote-Repository verwenden können, wie Sie mit Ihrem Zweig vom lokalen Repository auf Remote-Repository verknüpft werden sollen.

Wird diese Garantie, dass meine Branche nicht mit jemandem vermischt werden?

JA. Ihr Master-Zweig ist absolut sicher von Ihrem Push (es). Und Ihr Zweig ist sicher vor gemischtem Code, es sei denn, jemand anderes schiebt diesen Zweig an. Wenn diese Bedingung angewendet werden kann ist es sicher zu sagen, dass Ihr Code nicht mit anderen Code gemischt wird.

Verwandte Themen