Cum a face tu a crea o distanță Git branch?

Am creat o filială locală care vreau să 'push' din amonte. Există o întrebare similară aici pe Stack Overflow pe cum de a urmări un nou create ramură de la distanță.

Cu toate acestea, fluxul de lucru este ușor diferită. În primul rând vreau pentru a crea o filiala locală, și mă va împinge doar în amonte, atunci când am'm a mulțumit și vreau să-mi împart ramură.

  • Cum aș putea face asta? (mele căutări pe google nu pare să vină cu ceva).
  • Cum v-am spus colegilor mei pentru a o scoate din amonte depozit?

ACTUALIZARE Cu Git 2.0 nu este un simplu răspuns am scris de mai jos: https://stackoverflow.com/a/27185855/109305

Comentarii la întrebare (4)

În primul rând, vă creați ramură la nivel local:

git checkout -b  # Create a new branch and check it out

La distanță de ramură este creat în mod automat atunci când vă împinge-l la server de la distanță. Deci, atunci când te simți pregătit pentru asta, poți să faci:

git push   

Unde <la distanță-numele> este, de obicei, "origine", numele care git dă de la distanță ai clonat de la. Colegii ar trage-o ramură, și-l's-a creat automat la nivel local.

Rețineți, totuși, că în mod oficial, formatul este:

git push  :

Dar atunci când omiteți o, ce presupune atât ramură nume sunt la fel. După ce a spus aceasta, ca un cuvânt de atenție, nu face greseala critic de specificarea doar :<la distanță-filiala-numele> (cu colon), sau la distanță de ramură vor fi șterse!

Așa că un ulterioare git pull va ști ce să facă, s-ar putea, în schimb, doriți să utilizați:

git push --set-upstream   

După cum este descris mai jos, --set-amonte opțiune stabilește o ramura din amonte:

Pentru fiecare ramură, care este de până la data de sau împins cu succes, se adaugă în amonte (de urmărire) de referință, utilizate de către argument-mai puțin git-pull(1) și alte comenzi.

Comentarii (29)

În primul rând, trebuie să creați ramură la nivel local

git checkout -b your_branch

După aceea, puteți lucra la nivel local în ramură, când sunteți gata să împărtășească ramura, împingeți-l. Următoarea comandă împinge ramură la depozitul de la distanță origine si piese

git push -u origin your_branch

Colegii de echipă poate ajunge la sucursala dvs., de a face:

git fetch
git checkout origin/your_branch

Puteți continua să lucreze în ramură și împinge ori de câte ori doriți, fără a trece argumente la git push (argumentless git push vă va împinge la maestru la maestru de la distanță, your_branch locale de la distanță your_branch, etc...)

git push

Colegii de echipă poate împinge la sucursala dvs. de a face angajează și apoi apăsați în mod explicit

... work ...
git commit
... work ...
git commit
git push origin HEAD:refs/heads/your_branch

Sau de urmărire ramura a evita argumente la git push

git checkout --track -b your_branch origin/your_branch
... work ...
git commit
... work ...
git commit
git push
Comentarii (0)
Soluția

Simplu Git 2.0+ soluție:

Ca de Git 2.0 comportamentul a devenit mai simplu:

Puteți configura git cu push.default = curent pentru a face viața mai ușoară:

Am adăugat acest lucru, așa că acum pot împinge o nouă ramură în amonte cu

$ git push -u

-u va urmări de la distanță ramură de același nume. Acum, cu această configurație va auto-ghici de la distanță referire la git push. De git.config documentația:

push.implicit

Definește acțiunea git push ar trebui să ia, dacă nu refspec este dat în mod explicit.

push.default = curent - push ramura curentă pentru a actualiza o ramură cu același nume de pe la sfârșitul primirea. Funcționează atât în europa centrală și de non-centrale fluxuri de lucru.

Pentru mine, acesta este un bun simplificare a mea de zi cu zi Git flux de lucru. Setarea de configurare are grijă de 'de obicei' caz de utilizare în cazul în care adăugați o ramură la nivel local și vreau să-l creeze de la distanță. De asemenea, pot la fel de usor de a crea filiale locale de telecomenzi de a face doar git co remote_branch_name (spre deosebire de utilizarea --set-în amonte-a flag).

Știu că această întrebare și răspunsuri acceptate sunt destul de vechi, dar comportamentul s-a schimbat, astfel încât acum există opțiuni de configurare pentru a face fluxul de lucru mai simple.

Pentru a adăuga la nivel mondial Git de configurare, aceasta rula pe linia de comandă:

$ git config --global push.default current
Comentarii (3)

După cum se menționează în răspunsurile precedente,

git push  :

este suficient pentru a impinge o filială locală.

Colegii dumneavoastră, puteți trage toate sucursalele izolate (inclusiv cele noi) cu această comandă:

git remote update

Apoi, pentru a face schimbări pe ramura, fluxul obișnuit:

git checkout -b  /
Comentarii (0)

A crea o nouă ramură la nivel local, bazate pe ramură de curent:

git checkout -b newbranch

Comite orice modificări în mod normal ar fi. Apoi, împingeți-l în amonte:

git push -u origin HEAD

Aceasta este o comandă rapidă pentru a împinge curent ramură la ramură cu același nume de pe "origine" și urmăriți-l, astfel încât tu nu't nevoie pentru a specifica originea CAP în viitor.

Comentarii (5)

Dacă doriți să creați o ramură la ramură de curent

git checkout -b {your_local_branch_name} 

vrei o ramură de la o ramură de la distanță, puteți încerca

git checkout -b {your_local_branch_name} origin/

Dacă ați terminat cu modificările puteți adăuga fișierul.

git add -A or git add 

Apoi face o comit la nivel local

git commit -m 'your commit message'

Atunci când doriți pentru a împinge de la distanță repo

git push -u origin 

Toate împreună, vor fi

git checkout -b bug_fixes 

sau Dacă doriți să creați o ramură de la o ramură de la distanță spun de dezvoltare

git checkout -b bug_fixes origine/de dezvoltare

Te poate împinge la sucursala de la distanță repo de

git push -u origin bug_fixes

Oricând doriți să actualizați ramură de orice altă ramură spun master.

`git trage originea de master.

Comentarii (0)

Dacă vrei, de fapt, doar a crea ramură de la distanță, fără a avea cea locală, o poti face astfel:

git push origin HEAD:refs/heads/foo

Se împinge tot ce este CAPUL pentru a filialei foo care nu exista pe telecomanda.

Comentarii (4)

Mai simplă Soluție... Drumm Rola... git versiunea 2.10.1 (Apple Git-78)

1) git checkout -b localBranchNameThatDoesNotExistInRemote

2) Do your changes, and do a git commit 

3) git push origin localBranchNameThatDoesNotExistInRemote --force

N. B. - sucursala tocmai l-ați creat în mediul local și de la distanță non-existente sucursală în cazul în care sunteți încercarea de a împinge, trebuie să aibă același nume.

Comentarii (1)

În primul rând vă creați ramura la nivel local:

git checkout -b your_branch

Și apoi pentru a crea ramura de la distanță:

git push --set-upstream origin your_branch

Notă: Aceasta funcționează pe ultimile versiuni de git:

$ git --version
git version 2.3.0

Noroc!

Comentarii (1)

Creați ramura pe computerul local și de a comuta în această ramură :

$ git checkout -b [name_of_your_new_branch]

Împinge ramura pe github :

$ git push origin [name_of_your_new_branch]

Atunci când doriți să comită ceva în filiala ta, asigurați-vă că pentru a fi în ramură.

Puteți vedea toate ramurile creat prin utilizarea :

$ git branch

Care va arăta :

* approval_messages
  master
  master_clean

Adăugați o nouă telecomandă pentru ramura :

$ git remote add [name_of_your_remote] 

Împinge schimbările de pe comite în ramură :

$ git push origin [name_of_your_remote]

Update filiala când original ramură oficial de la depozit au fost actualizate :

$ git fetch [name_of_your_remote]

Apoi, aveți nevoie să se aplice pentru a merge modificări, dacă filiala este derivat din dezvoltarea trebuie să faci :

$ git merge [name_of_your_remote]/develop

Șterge-o ramură în sistemul de fișiere local :

$ git branch -d [name_of_your_new_branch]

Pentru a forța ștergerea filiala locală pe site-sistem de fișiere :

$ git branch -D [name_of_your_new_branch]

Șterge ramura pe github :

$ git push origin :[name_of_your_new_branch]

Aici Toate Informatiile

Alt proiect Existent

Comentarii (0)

Crearea unei filiale locale dintr-un existent de ramură (pot fi master/ dezvolta/ orice-alte-filiala).

git checkout -b branch_name

Împinge acest lucru de la distanță

git push-u remote_name local_branch_name:remote_branch_name

Aici,

  1. -u : seturi amonte de ramură
  2. remote_name : git setează numele implicit pentru a fi "originea" atunci când se creează un depozit. Totuși, acest lucru poate fi schimbat cu un alt nume arbitrar.
  3. local_branch_name : este numele filialei locale să fie împins.
  4. remote_branch_name : este numele de la distanță ramură care vrem să fie creat de la distanță.

Dacă am elimina locale și la distanță ramură nume, acesta va fi format

git push-u remote_name branch_name

Acest lucru va împinge filiala locală și de la distanță, cu același nume ca filiala locală branch_name. Filiala locală va fi de urmărire la distanță de ramură, precum și.

Comentarii (0)

Știu că această întrebare este un răspuns, ci doar a vrut să enumere măsuri am lua pentru a crea o nouă ramură "myNewBranch" și împinge de la distanță ("originea" în cazul meu) și a înființat de urmărire. Luați în considerare acest "TL;DR" versiune :)

# create new branch and checkout that branch
git checkout -b myNewBranch
# now push branch to remote 
git push origin myNewBranch
# set up the new branch to track remote branch from origin
git branch --set-upstream-to=origin/myNewBranch myNewBranch
Comentarii (0)

Acum, cu git, puteți doar de tip, atunci când vă aflați în ramură corect

git push --set-amonte origine <la distanță-filiala-numele>

și git crea pentru tine origine ramură.

Comentarii (3)

O poți face în 2 pante:

1. Utilizați "checkout" pentru a crea filiala locală:

git checkout -b yourBranchName

2. Utilizați "push" comandă pentru a autocreate de ramură și trimite codul de la depozit la distanță:

git push -u origin yourBanchName

Nu sunt mutiple moduri de a face acest lucru, dar cred că în acest fel este foarte simplu.

Comentarii (0)

Am vrut doar să adaug că, în timp ce:

git checkout -b {branchName}

Creează o nouă filială, se verifică, de asemenea, că filiala / face dvs. curentă ramură. Dacă, pentru un motiv oarecare, toate doriți să faceți este să fixați pe o ramură, dar nu faci din asta o ramură de curent, atunci ar trebui să utilizați următoarea comandă:

git branch {branchName}

În prima comandă, "checkout" face ramură a declarat curentă ramură, și " b" înseamnă: această ramură nu't există încă, așa că fă-o pentru mine.

Comentarii (0)

Cum se face printr-Sursa Copac

 1: Open SourceTree, click on Repository -> Checkout
 2 :Click on Create New Branch
 3: Select branch where from you want to get code for new branch 
 4: Give your branch name
 5: Push the branch  (by click on Push button)
Comentarii (0)

git push-u <la distanță-nume> <sucursală-numele> nu't de lucru dacă nou-create ramură e't generat din aceeași repo, adică dacă te-ai't creat o nouă ramură folosind git checkout -b new_branch`, atunci acest lucru nu va funcționa.

De exemplu, am avut clonat două depozite diferite la nivel local și am avut de a copia repo2/branch1 să repo1/ și apoi împingeți-l prea.

Acest link-ul m-a ajutat împinge mea filiala locală (clonate de la un alt repo) de la telecomanda mea repo:

Comentarii (0)

Aici este cum o faci în eclipse prin Egit.

  1. Du-te la "Depozit Git Explorarea" vezi și expland git proiect pentru care doriți să creați o ramură. Sub ramurile coralilor -> Local .. selectați ramura pentru care doriți să creați ramură ( În cazul meu, am selectat master .. puteți selecta o altă altă ramură, dacă doriți) .. apoi dați clic dreapta și faceți clic pe Crea Ramură opțiune .. și selectați checkout acest proiect opțiune și apoi faceți clic pe termina butonul.

  2. Acum, din project explorer selectați proiectul .. click dreapta apoi Echipa -> Apăsați Ramură.

O nouă ramură de la distanță va fi creat. Vă pot da numele filialei de la colegii dumneavoastră, astfel încât ele pot trage.

Comentarii (1)

Eu folosesc acest lucru și este destul de la îndemână:

git config --global alias.mkdir '!git checkout -b $1; git status; git push -u origin $1; exit;'

Utilizare: git mkdir NEW_BRANCH

Nu't chiar nevoie de git status; poate, vreau doar să mă asigur că totul merge bine...

Puteți avea ATÂT LOCALE și de la DISTANȚĂ ramură cu o singură comandă.

Comentarii (0)