Git-дағы жаңа филиалға бар, істен шықпаған жұмысты жылжытыңыз

Мен жаңа функция бойынша жұмыс істей бастадым, ал кодты сәл кейін, мен бұл функция бөлек тармақта болуы керек деп шештім.

Қолданыстағы өзгертілмеген өзгертулерді жаңа филиалға қалай көшіруге болады және менің ағымдағы жолымды қалпына келтіруге болады?

Мен өзімнің қазіргі филиалымызды қалпына келтіргім келеді.

2540
08 сент. Dane O'Connor ұсынған 08 қыркүйек. 2009-09-08 18:57 '09 at 18:57 2009-09-08 18:57
@ 5 жауаптар

Төмендегілерді пайдаланыңыз:

 git checkout -b <new-branch> 

Бұл сіздің ағымдағы филиалыңызды қалдырады, жаңа филиал құрып, тексереді және барлық өзгерістерді сақтайды. Сонан соң келесі әрекеттерді орындауға болады:

 git add <files> 

және жаңа филиал арқылы:

 git commit -m "<Brief description of this commit>" 

Жұмыс каталогындағы өзгерістер мен индекстегі өзгерістер әлі күнге дейін ешқандай филиалға тиесілі емес. Бұл өзгерістер өзгерген кезде өзгереді.

Қайнар көзін қалпына келтірудің қажеті жоқ, ол сол қалпында қалады. <old-branch> үшін соңғы міндеттеме бұрынғысынша бірдей болады. Осылайша, сіз checkout -b , содан кейін түзетіңіз.

2999
08 сент. Бұл сұраққа жауап 08 sep . 2009-09-08 18:59 '09 at 18:59 2009-09-08 18:59

Баламалы түрде:

  • Ағымдағы қарқынды өзгерістерді сақтаңыз:

    $ git stash

  • Осы кэшке негізделген жаңа филиал жасаңыз және жаңа филиалға ауысыңыз:

    $ git stash branch <new-branch> stash@{0}

border=0

Кеңес Әмиянның атын енгізуді азайту үшін Tab пернесін пайдаланыңыз.

257
19 июня '15 в 3:18 2015-06-19 03:18 Жауап Robin Quu 19 маусым, 15 сағат 3:18 2015-06-19 03:18

Егер сіз негізгі кодты кодтау кезінде жасаған болсаңыз , енді сіз бұл тапсырманы басқа филиалға ауыстырғыңыз келеді:

  1. Ағымдағы тарихты жаңа ағынға көшіру, сонымен қатар кез-келген қабылданбаған өзгертулерді жасау:

     git checkout -b <new-feature-branch> 
  2. Алғашқы кірлеген бұтақты қайта орауға мәжбүрлеңіз: (оны ауыстырмай)

     git branch -f <previous-branch> <earlier-commit-id> 

    Мысалы:

     git branch -f master origin/master 

    немесе 4 түзету жасаған болсаңыз:

     git branch -f master HEAD~4 

Ескерту Бұл git branch -f master origin/master арналған қадағалау ақпаратын қалпына келтіретін git branch -f master origin/master қалпына келеді. Осылайша, егер сіз master бір жерде бассаңыз, origin/master бұл конфигурация жоғалады.

Баламасы - бұл қалпына келтіру техникасын қолдану . Бірақ бұл нұсқаулар сізде бар өзгермеген өзгерістерді алып тастайды. Егер оларды сақтағыңыз келсе, алдымен оларды жасырыңыз және оларды соңынан шығарыңыз.

37
12 февр. 12-ақпанда ceythetwiddle берген жауап 2016-02-12 10:44 '16 сағат 10:44 2016-02-12 10:44

Егер сіз мұны жасасаңыз, сіз бір тапсырма үшін виджетті таңдауға да болады. Мастермен жұмыс істей бастағанда, жиі осылай істеймін, содан кейін өзімнің бастамамды көтерместен бұрын жергілікті филиал құруды қалаймын.

 git cherry-pick <commitID> 

Мұнда сипатталғандай, мұнда шие-шұңқырдың көмегі арқылы көп нәрсе жасауға болады , бірақ бұл сіз үшін прецедент бола алады.

16
30 нояб. жауапқа пароль 30 қараша. 2015-11-30 23:58 '15 at 11:58 pm 2015-11-30 23:58

Жалпы сценарий келесідей: Мен жаңа функция үшін жаңа филиал құруды ұмытып, ескі филиалдағы барлық жұмыстарды жасадым. Мен шеберлік бөліміндегі барлық «ескі» жұмыстарды аяқтадым және менің жаңа филиалымызды «шеберіден» дамытқым келеді. Мен жаңа жұмысымды бірде-бір бекітпедім. Міне, салалық құрылым: «master» → «old_feature»

 git stash git checkout master git checkout -b "New_branch" git stash apply 
1
13 авг. Алекс Буровтың берген жауабы 13 тамыз. 2018-08-13 19:07 '18 сағат 19: 30-да 2018-08-13 19:07

Тегтер туралы басқа сұрақтар немесе Сұрақ қойыңыз