Dacă am avea n comite, cum pot ramură din n-3 a comis-o?
Eu pot vedea hash de fiecare commit.
Puteți crea ramura printr-un hash:
git branch branchname <sha1-of-commit>
Sau folosind o referință simbolică:
git branch branchname HEAD~3
Pentru a checkout ramură atunci când crearea, utilizarea
git checkout -b branchname <sha1-of-commit or HEAD~3>
Pentru a face acest lucru pe github.com:
Magia poate fi realizat prin: * git reset**.
git checkout -b your_new_branch
`git checkout master
git reset --greu de CAP~x # în cazul tău, x = 3
Din acest moment, toate cele mai recente x se angajează numai în ramură nouă, nu în dumneavoastră de lucru anterioară ramură (master) orice mai mult.
Dacă nu sunteți sigur care comite doriți să o ramură de în avans, puteți verifica comite afară și de a examina codul lor (a se vedea sursă, compilarea, test) prin
git checkout <sha1-of-commit>
odată ce ați găsit comite vrei sa sucursala de la, puteți face asta de la a comis (de exemplu, fără a merge înapoi la master) doar prin crearea unei sucursale în mod obișnuit:
git checkout -b <branch_name>
O modalitate rapidă de a face pe repo Github ar fi dupa cum urmeaza:
Pur și simplu rulați :
git checkout -b branch-name <commit>
De exemplu :
git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8
Pe "checkout" comanda cu parametrul -b
se va crea o nouă ramură ȘI se va trece pe la ea
Pentru a face acest lucru în Eclipse:
Se va crea o filială locală pentru tine. Apoi, ori de câte ori te împinge modificările, filiala va fi împins la serverul de la distanță.
Am fost în stare să o faci astfel:
git branch new_branch_name `git log -n 1 --skip 3 --format=%H`
În cazul în care trebuie să introduceți sări valoare. 0 este cea mai recentă, 1 este anterior, 2 este comis înainte de asta, etc.
O mare întrebare este: Cum naiba ți-ai dat seama de acest lucru, folosind --help
opțiune de git? Las's încercați acest lucru:
git branch --help
Vom vedea acest lucru de ieșire:
NAME
git-branch - List, create, or delete branches
SYNOPSIS
git branch [--color[=<when>] | --no-color] [-r | -a]
[--list] [-v [--abbrev=<length> | --no-abbrev]]
[--column[=<options>] | --no-column]
[(--merged | --no-merged | --contains) [<commit>]] [--sort=<key>]
[--points-at <object>] [<pattern>...]
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
git branch (--set-upstream-to=<upstream> | -u <upstream>) [<branchname>]
git branch --unset-upstream [<branchname>]
git branch (-m | -M) [<oldbranch>] <newbranch>
git branch (-d | -D) [-r] <branchname>...
git branch --edit-description [<branchname>]
Acest limbaj.
Cauta prin ulterioare text pentru cuvântul "comit". Am găsit asta:
<start-point>
The new branch head will point to this commit. It may be given as a branch name, a
commit-id, or a tag. If this option is omitted, the current HEAD will be used instead.
Am're obtinerea undeva!
Acum, se concentreze pe această linie de acest limbaj:
git branch [--set-upstream | --track | --no-track] [-l] [-f] <branchname> [<start-point>]
Condensa la asta:
git branch <branchname> [<start-point>]
Și făcut.
Du-te la un anumit comis de un depozit git
Uneori, atunci când se lucrează pe un depozit git vrei să te întorci la un anumit comite (revizie) pentru a avea o imagine de proiectul dumneavoastră la un anumit moment. Pentru a face asta ai nevoie de ea SHA-1 hash a comite care puteți găsi cu ușurință verificarea log cu comanda:
git log --abbrev-commit --pretty=oneline
care vă va oferi o listă compact de toate comite și versiunea scurtă a SHA-1 hash.
Acum, că știți hash a comis-vrei să mergi să puteți utiliza unul din urmatoarele 2 comenzi:
git checkout HASH
sau
git reset --hard HASH
checkout
git checkout <comit> <căi>
Spune git pentru a înlocui starea actuală de drumuri cu starea lor în a comis-o. Căile pot fi fișiere sau directoare.
Dacă nu ramură este dat, git presupune CAP comis-o.
git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.
Dacă nu calea este dat, git miscari de " ȘEF " la dat commit (schimbând astfel se angajeze're relaxare și de lucru pe).
git checkout branch //means switching branches.
reset
git reset <commit> //re-sets the current pointer to the given commit.
Dacă sunteți pe o ramură (de obicei ar trebui să fie), " ȘEF " și această ramură sunt mutate pentru a comite.
Dacă sunteți în detașat " ȘEF "de stat, git reset se muta doar "ȘEF". Pentru a reseta o sucursală, în primul rând a verifica it afară.
Dacă vrei să afli mai multe despre diferența dintre git reset si git checkout aș recomanda să citiți oficial git blog.
Aceasta este ceea ce am făcut:
C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'
C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch
master
* responsivenavigation
În acest caz, 8a75b001096536b3216022484af3026aa9c7bb5b
a fost vechi și comite aparținând "maestru" ramură.
Pentru a face răspunsul acceptat în Visual Studio 2015 & 2017:
Faceți clic în modificări (sageata rosie de mai sus)
Faceți clic în Acțiuni (sageata rosie de mai sus) și faceți clic în Vedere Istoria pe Meniul Vertical
Și Filă nouă se va deschide:
Și tu ar trebui să dați clic dreapta anterioare se angajeze pe care doriți codul pentru a reveni la:
Alege să checkout o nouă ramură și voilá!
Mai jos, deși nu face parte din OP întrebare, dar am făcut amândoi o mulțime și acesta este un truc pas, cel puțin pentru mine: dacă doriți să reveniți la o versiune anterioară a comis, fără plateste o nouă ramură, NU alege reveni(!?); ar trebui să alegeți redefini --mixte sau ... greu:
dacă utilizați sursa de copac, care este destul de drept înainte.
Acest lucru creează ramura cu o singură comandă:
git push origin <sha1-of-commit>:refs/heads/<branch-name>
Eu prefer acest mod mai bine decât cele publicate mai sus, pentru că se creează filiala imediat (nu are nevoie de un impuls suplimentar de comandă ulterior).
Dacă sunteți în căutarea pentru o linie de comandă pe bază de soluție, puteți ignora raspunsul meu. Am să-ți sugerez să utilizați GitKraken. L's un extraordinar git UI client. Acesta arată Git copac de pe pagina de start. Poți să te uiți la ei și știu ce se întâmplă cu proiectul. Doar selectați un anumit comis-o, faceți clic dreapta pe ea și selectați opțiunea 'de a Crea o filială aici'. Acesta vă va oferi o casetă de text pentru a introduce nume de ramură. Introduceți numele filialei, selecta 'BINE' și vă sunt stabilite. L's foarte ușor de utilizat.