kzen.dev
  • Întrebări
  • Tag-uri
  • Utilizatori
Notificări
Recompense
Înregistrare
După înregistrare, veți primi notificări despre răspunsurile și comentariile la întrebările DVS.
Logare
Dacă aveţi deja un cont, autentificaţi-vă pentru a verifica notificările noi.
Aici vor fi recompensele pentru întrebările, răspunsurile și comentariile adăugate sau modificate.
Mai mult
Sursă
Editează
 tybro0103
tybro0103
Question

Git pull-o anumită ramură de la GitHub

Am un proiect cu mai multe ramuri. Am'am fost împingându-le la GitHub, și acum că cineva este de lucru pe proiect am nevoie pentru a trage ramurile lor de la GitHub. Acesta funcționează bine în maestru. Dar să zicem că cineva a creat o ramură "xyz". Cum pot trage ramura " xyz "de la GitHub și fuziona într-sucursala" xyz " pe "localhost"?

Am raspuns aici: https://stackoverflow.com/questions/1072261/push-and-pull-branches-in-git

Dar primesc o eroare "! [respins]" și ceva despre "non fast forward".

Orice sugestii?

565 2009-11-10T16:18:21+00:00 11
 user664833
user664833
Întrebarea editată 9 octombrie 2018 в 6:31
GitHub - Wikipedia
en.wikipedia.org
Programare
git
github
branch
merge
pull
Solution / Answer
 mipadi
mipadi
10 noiembrie 2009 в 7:17
2009-11-10T19:17:47+00:00
Mai mult
Sursă
Editează
#9677743

Dar primesc o eroare "! [respins]" și ceva despre "non fast forward"

Ca's pentru Git poate't îmbinați modificările din ramurile în actualul master. Las's spun te'am verificat filiala "maestru", și doriți să fuzioneze în ramură de la distanță alte-filiala. Atunci când faci acest lucru:

$ git pull origin other-branch

Git este, practic, face acest lucru:

$ git fetch origin other-branch && git merge other-branch

Asta este, un "pull" este doar un "aport", urmat de un merge. Cu toate acestea, atunci când "trage" -ing, Git va doar merge alte-filiala if se poate efectua o fast-forward merge. O fast-forward unificare este o unificare în care șeful filialei sunteți încercarea de a fuziona într-un descendent direct de șef al sucursalei care doriți să le îmbinați. De exemplu, dacă aveți această istorie copac, apoi fuzionează alte-filiala ar duce la un fast-forward merge:

O-O-O-O-O-O
^         ^
master    other-branch

Cu toate acestea, acest lucru ar nu fi un fast-forward merge:

    v master
O-O-O
\
 \-O-O-O-O
         ^ other-branch

Pentru a rezolva problema, în primul rând aduc la distanță de ramură:

$ git fetch origin other-branch

Apoi se merge în ramură de curent (I'll să presupunem că's "maestru"), și de a rezolva orice îmbinare a conflictelor:

$ git merge origin/other-branch
# Fix merge conflicts, if they occur
# Add merge conflict fixes
$ git commit    # And commit the merge!
676
0
 innaM
innaM
10 noiembrie 2009 в 7:09
2009-11-10T19:09:08+00:00
Mai mult
Sursă
Editează
#9677742

Pur și simplu urmăriți de la distanță ramuri în mod explicit și un simplu git pull va face doar ceea ce vrei:

git branch -f remote_branch_name origin/remote_branch_name
git checkout remote_branch_name

Acesta din urmă este o operațiune locală.

Sau chiar mai potrivit în cu GitHub documentația privind bifurcare:

git branch -f new_local_branch_name upstream/remote_branch_name
 DaveInCaz
DaveInCaz
Răspuns editat 17 decembrie 2018 в 8:18
292
0
Robert Cabri
Robert Cabri
10 noiembrie 2009 в 4:28
2009-11-10T16:28:48+00:00
Mai mult
Sursă
Editează
#9677741

Ai putea trage o ramură la ramură cu următoarele comenzi.

git pull {repo} {remotebranchname}:{localbranchname}

git pull origin xyz:xyz

Atunci când sunteți pe ramura de master ai putea, de asemenea, prima verificare o ramură, cum ar fi:

git checkout -b xyz

Acest lucru creează o nouă filială, "xyz", de master și direct o verifică.

Apoi faci:

git pull origin xyz

Aceasta trage nouă ramură a local " xyz " ramură.

Peter Mortensen
Peter Mortensen
Răspuns editat 12 februarie 2016 в 10:25
114
0
 mohit
mohit
29 iunie 2012 в 6:12
2012-06-29T06:12:10+00:00
Mai mult
Sursă
Editează
#9677744

Cel mai bun mod este:

git checkout -b <new_branch> <remote repo name>/<new_branch>
Peter Mortensen
Peter Mortensen
Răspuns editat 12 februarie 2016 в 10:27
85
0
Bradley Flood
Bradley Flood
14 octombrie 2014 в 1:02
2014-10-14T01:02:07+00:00
Mai mult
Sursă
Editează
#9677745

git fetch va apuca cea mai recentă listă de ramuri.

Acum puteți git checkout MyNewBranch

Done :)


Pentru mai multe informatii vezi docs: git fetch

Bradley Flood
Bradley Flood
Răspuns editat 27 februarie 2015 в 5:38
41
0
Alex N.
Alex N.
10 noiembrie 2009 в 4:23
2009-11-10T16:23:46+00:00
Mai mult
Sursă
Editează
#9677740

Eu nu sunt sigur că am înțeles pe deplin problema, dar trăgând existent ramură se face astfel (cel puțin pentru mine :)

git pull origin BRANCH

Acest lucru este presupunând că filiala locală este creat de origine/de RAMURĂ.

Peter Mortensen
Peter Mortensen
Răspuns editat 12 februarie 2016 в 10:23
31
0
anatoly techtonik
anatoly techtonik
15 februarie 2016 в 9:25
2016-02-15T21:25:49+00:00
Mai mult
Sursă
Editează
#9677746

Acest lucru m-a ajutat pentru a obține de la distanță ramură înainte de fuziunea într-altele:

git fetch repo xyz:xyz
git checkout xyz
13
0
 prathap
prathap
8 decembrie 2017 в 4:23
2017-12-08T04:23:02+00:00
Mai mult
Sursă
Editează
#9677748
git pull <gitreponame> <branchname>

De obicei, dacă aveți doar repo atribuit codul apoi gitreponame ar fi originea.

Dacă sunteți de lucru pe două repo's place este una locală și una la distanță ca tine poate verifica repo's lista de git remote -v. acest lucru arată cât de multe repo's sunt atribuite actualul cod.

BranchName ar trebui să există în corespunzătoare gitreponame.

puteți utiliza următoarele două comenzi pentru a adăuga sau elimina repo's

git remote add <gitreponame> <repourl>
git remote remove <gitreponame>
 KARTHIKEYAN.A
KARTHIKEYAN.A
Răspuns editat 8 decembrie 2017 в 4:27
2
0
Adrien Renaud
Adrien Renaud
19 noiembrie 2018 в 7:38
2018-11-19T19:38:10+00:00
Mai mult
Sursă
Editează
#9677750

Pur și simplu pune, Dacă vrei să trage de la GitHub ramura the_branch_I_want:

git fetch origin
git branch -f the_branch_I_want origin/the_branch_I_want
git checkout the_branch_I_want
2
0
 PKV
PKV
28 august 2017 в 9:10
2017-08-28T09:10:46+00:00
Mai mult
Sursă
Editează
#9677747

puteți face, de asemenea,

git pull -r origin master

fix merge conflicte, dacă orice

git rebase --continue

-r este pentru rebazare. Acest lucru va face să vă structură de ramură din

        v  master       
o-o-o-o-o
     \o-o-o
          ^ other branch

pentru a

        v  master       
o-o-o-o-o-o-o-o
              ^ other branch

Acest lucru va duce la un aspirator de istorie. Notă: în cazul În care aveți deja l-a împins pe celălalt-ramura sa de origine( sau orice alta telecomanda), va trebui să vigoare împinge ramură după rebazare.

git push -f origin other-branch
1
0
 Vicky
Vicky
25 iulie 2018 в 3:44
2018-07-25T15:44:58+00:00
Mai mult
Sursă
Editează
#9677749

Am făcut

git branch -f new_local_branch_name origin/remote_branch_name

În loc de

git branch -f new_local_branch_name upstream/remote_branch_name

Cum a sugerat de către @innaM. Când am folosit în amonte versiune, a spus 'fatală: Nu un obiect valid nume: 'din amonte/remote_branch_name''. Nu am facut git fetch origine ca un comentariu sugerat, dar în loc de pur și simplu înlocuit "în amonte" cu "origine". Cred că ele sunt echivalente.

0
0
Adăugati o întrebare
Categorii
Toate
Tehnologii
Cultură
Viață / Artă
Stiință
Profesii
Afaceri
Utilizatori
Toate
Nou
Populare
1
工藤 芳則
Înregistrat 6 zile în urmă
2
Ирина Беляева
Înregistrat 1 săptămână în urmă
3
Darya Arsenyeva
Înregistrat 1 săptămână în urmă
4
anyta nuam-nuam (LapuSiK)
Înregistrat 1 săptămână în urmă
5
Shuhratjon Imomkulov
Înregistrat 1 săptămână în urmă
DA
DE
EL
ES
FI
FR
ID
IT
JA
KO
NL
NO
PL
PT
RO
RU
TR
ZH
© kzen.dev 2023
Sursă
stackoverflow.com
în cadrul licenței cc by-sa 3.0 cu atribuire