Маған басты бөлімде «ортаңғы» бекітуді шығарып алу керек. Мұны қалай істеуге болады?

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

 commit 60b413512e616997c8b929012cf9ca56bf5c9113 Author: Luca G. Soave <luca.soave@gmail.com> Date: Tue Apr 12 23:50:15 2011 +0200 add generic config/initializers/omniauth.example.rb commit af5c7bf16e6f04321f966b4231371b21475bc4da Author: Luca G. Soave <luca.soave@gmail.com> Date: Fri Apr 22 00:15:50 2011 +0200 show github user info if logged commit e6523efada4d75084e81971c4dc2aec621d45530 Author: Luca G. Soave <luca.soave@gmail.com> Date: Fri Apr 22 17:20:48 2011 +0200 add multiple .container at blueprint layout commit 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22 Author: Luca G. Soave <luca.soave@gmail.com> Date: Thu Apr 21 19:55:57 2011 +0200 add %h1 Fantastic Logo + .right for 'Sign in with Github' 

Маған керек

  • Бірінші бекіту - 60b413512e616997c8b929012cf9ca56bf5c9113,
  • Үшінші ұстаушы e6523efada4d75084e81971c4dc2aec621d45530 және
  • Соңғы түзету 414ceffc40ea4ac36ca68e6dd0a9ee97e73dee22

тек екінші бекітуді « тастайды» af5c7bf16e6f04321f966b4231371b21475bc4da

Мұны қалай жасауға болады? алдын ала Лұқа алғыс айтамыз

48
22 апр. Luca G. Soave тарапынан орнатқан 22 сәуір 2011-04-22 18:48 '11 at 18:48 2011-04-22 18:48
@ 3 жауаптар

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

Филиал басқа репозитарийлерге берілсе, қайтару дұрыс шешім. git revert af5c7bf16 қайтадан git revert af5c7bf16 жасаған өзгерістерді өзгертетін жаңа бекітпелік жасайды. Осылайша, әңгіме қайта жазылмайды, сіз қатенің анық жазылуын сақтайсыз, ал басқа репозитарь басу болады.

git rebase -i <commit>^ жақсы тәсілі: git rebase -i <commit>^ Бұл сізді жойғыңыз келгенге дейін орындауға әкеледі. Интерактивті редактор сіздерге барлық тапсырмалардың тізімін көрсетеді. Сіз таңдай аласыз, сквош және т.б. Бұл жағдайда, жойғыңыз келетін жолды жойыңыз және файлды сақтаңыз. Rebase өз жұмысын аяқтайды.

63
22 апр. Жауап JCotton 22 сәуір 2011-04-22 19:23 '11 at 19:23 2011-04-22 19:23

Егер rebase опция болса, оны қайта орнатуға және оны бас тартуға болады:

 $ git rebase -i 414ceffc^ 
border=0

Егер rebase опция болмаса, оны жай ғана қайтара аласыз:

 $ git revert af5c7bf16 
19
22 апр. Жауап: mipadi 22 сәу. 2011-04-22 19:11 '11 at 19:11 2011-04-22 19:11

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

  • Барлық тапсырмаларды қамтитын бастан жаңа тармақ жасаңыз және оған ауысыңыз.
  • Жаңа бөлімшені жаңа базаны бастау керек нүктеге қайтарыңыз.
  • Одан кейін (негізгі нүкте) шие сізге кейінгі дереккөзден жаңадан қолдануға болатын келесі тапсырмаларды таңдап , сізге қажет емес міндеттемелерді (яғни, сіз жойған) өткізіп жіберіңіз.
  • Егер қаласаңыз, ескі кодты көрсететін бастапқы тармақты қайта атаңыз, содан кейін түпнұсқа шығарылған жаңа филиалдың атын өзгертіңіз.
  • Соңында, қашықтағы реподағы өзгертулерді басыңыз (егер пайдаланылса). Сізге «итеруді» пайдалану қажет болуы мүмкін. Егер сіздің бірлесіп жұмыс жасайтындарыңыз түзетулермен байланысты проблемалар туындаса, репоны қашықтағы дереккөзден қайтадан клондау оңай болуы мүмкін. Қалай болғанда да, сіз өзіңіздің тарихыңыздың ортасынан кусіресеңіз, олармен сөйлескіңіз келеді!

Шие жинау туралы ақпарат: Шие құрылымы немен айналысады?

Міне, олардың кейбіреулері Tortoise git (мен сияқты). Әрекеттердің осы түрлеріне арналған ги утилитасын пайдалану оңайырақ! TortoiseGit көмегімен шие жинаушы

5
04 авг. Жауап BuvinJ 04 тамызда жарияланады. 2017-08-04 02:16 '17 сағат 2 : 16- да 2017-08-04 02:16

қатысты басқа сұрақтарға немесе Сұрақ қойыңыз