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ă.
ACTUALIZARE Cu Git 2.0 nu este un simplu răspuns am scris de mai jos: https://stackoverflow.com/a/27185855/109305
În primul rând, vă creați ramură la nivel local:
git checkout -b <branch-name> # 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 <remote-name> <branch-name>
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 <remote-name> <local-branch-name>:<remote-branch-name>
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 <remote-name> <local-branch-name>
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.
Î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
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
După cum se menționează în răspunsurile precedente,
git push <remote-name> <local-branch-name>:<remote-branch-name>
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 <local-branch-name> <remote-name>/<remote-branch-name>
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.
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/<remote_branch_name>
Dacă ați terminat cu modificările puteți adăuga fișierul.
git add -A or git add <each_file_names>
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 <your_local_branch_name>
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.
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.
Î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!
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]
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,
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.
Ș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
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.
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.
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)
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:
Aici este cum o faci în eclipse prin Egit.
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.
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.
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ă.