Жергілікті гитара әрекетін қалай ашу керек?

Менің мәселем - файлды өзгерткенім, мысалы: README, жаңа жолды қосқан «бұл менің сынақ сызығым» және файлды сақтап қойдым, содан кейін мен келесі командаларды шығардым

  git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: README # no changes added to commit (use "git add" and/or "git commit -a") git add README git commit -a -m 'To add new line to readme' 

Мен гитарадағы кодты басып шығарған жоқпын, енді мен бұл міндеттемені жойғым келеді.

Бұл үшін мен қолданамын

  git reset --hard HEAD~1 

Бірақ README файлынан жаңадан қосылған «бұл менің сынақ сызығым үшін» сызығынан айырылдым. Бұл болмауы керек. Мазмұнның болуы керек. Мазмұнды сақтау және менің жергілікті міндеттемемді болдырмау тәсілі бар ма?

560
31 янв. 31 қаңтарда Amal Kumar S- мен тағайындалды 2011-01-31 15:14 '11 at 15:14 2011-01-31 15:14
@ 7 жауап

Жай- --hard git reset функциясын пайдаланыңыз:

 git reset HEAD~1 

PS: Unix-негізделген жүйелерде HEAD^ , HEAD~1 пайдаланылуы мүмкін. Windows жүйесінде HEAD^ жұмыс істемейді, себебі сызықтың жалғасы сигнал береді. Мәселен, сіздің командалық шақыруыңыз Сізден More? сұрайды More? .

1085
31 янв. Жауап 31 қаңтарда Корактанға берілді 2011-01-31 15:17 '11 at 15:17 2011-01-31 15:17

Пайдалану - орнына - - туы жалаушасы:

border=0
 git reset --soft HEAD^ 
143
10 авг. Жауап TpED 10 тамызда беріледі. 2012-08-10 11:02 '12 at 11:02 am 2012-08-10 11:02

Егер сіз міндеттеменің ортасында болсаңыз (яғни редакторда қазірдің өзінде бар болса), оны барлық # жолдарынан жоғарылату арқылы болдырмауға болады. Бұл міндеттемені тоқтатады.

Осылайша, сіз барлық жолдарды жоюға міндеттеме хабарламасы бос болған соң, файлды сақтай аласыз:

2019

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

Ағымдағы жазбаларды көрсету үшін git log пайдаланыңыз, содан кейін жойғыңыз келгені емес, жойғыңыз келген алдындағы commit_id файлын табыңыз.

Егер жергілікті өзгертілген файлдарды сақтағыңыз келсе, міндеттеме хабарын жойыңыз:

git reset --soft commit_id

Жергілікті өзгертілген барлық файлдарды және міндеттеме туралы хабарды жойғыңыз келсе:

git reset --hard commit_id

Бұл айырмашылық жұмсақ әрі қиын

2
02 сент. жауап қате беріледі . 2018-09-02 06:43 '18 at 6:43 2018-09-02 06:43

Төмендегі пәрменді пайдаланыңыз: $ git reset HEAD ~ 1 Содан кейін, сіз төменде көрсетілгендей қайтарылған файлдарды көре аласыз.

Тазартудан кейін анықталмаған өзгерістер: M application / config / config.php M application / config / database.php

1
14 мая '18 в 16:25 2018-05-14 16:25 жауап 14-мамырда, сағат 18-те, 16: 05-те Омкарға беріледі

Go reset арасындағы айырмашылық --mixed, --soft және --hard

Пререквизит: репозиторийде бар файлға өзгеріс енгізілгенде, бұл өзгеріс бастапқыда анықталмаған болып саналады. Өзгерістерді орындау үшін, оны дайындау керек, яғни оны git add арқылы индекске git add . Орындау кезінде, орналастырылған файлдар индексіне қосылады.

Мысал келтірейік:

 - A - B - C (master) 

HEAD C индикаторын көрсетеді және индекс C сәйкес келеді C

- Microsoft

  • Біз git reset --soft B ді жою үшін және git reset --soft B / БАС-ды В-ға бағыттаңыз.
  • Master / HEAD енді B белгісін көрсетеді, бірақ индекс C-дан өзгереді.
  • git status іске git status кезде git status C-ге индекстелген файлдарды кезеңділікпен көруге болады.
  • Бұл жерде git commit іске қосу C-дегідей өзгерістері бар жаңа міндеттеме жасайды

- араластырылған

  • git reset --mixed B іске қосу - git reset --mixed B
  • Орындалып жатқанда, мастер / HEAD B-ға нұсқайды, сондай-ақ , аралас жалаудың арқасында индекс индикаторға B-ге ауысады .
  • Егер осы сәтте біз баруға міндеттіміз болса, ештеңе болмайды, себебі индекс индексі сәйкес келеді .
  • Біз әлі де жұмыс каталогында өзгерістер бар, бірақ олар индексте болмағандықтан, олардың жағдайы гауһар болып көрінбейді.
  • Оларды түзету үшін әдеттегідей git add және кейін түзету керек.

- хард

  • git reset --hard B
  • Master / HEAD орындау кезінде B белгісін көрсетіп , жұмыс каталогыңызды өзгертеді
  • C-ге қосылатын өзгертулер және барлық қабылданбаған өзгертулер жойылады .
  • Жұмыс көшірмесіндегі файлдар B-ге сәйкес келеді, бұл C-ді орындауға жасалған барлық өзгертулердің жоғалуына, сондай-ақ рұқсатсыз өзгерістерге әкеледі.

git reset пәрменімен пайдалануға болатын жалаушаларды салыстыру олардың біреуін ақылмен пайдалануға көмектеседі деп үміттенемін. Қосымша ақпарат link1 link2 үшін хабарласыңыз

0
18 янв. Жауап Ксенхан Нагесаран 18 қаңтар 2019-01-18 19:48 '19 сағат 19: 00-де 2019-01-18 19:48

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