Yerli borc törətməyi necə açmaq olar?

Mənim problemim, məsələn, faylını dəyişdirdiyimdir: README, yeni bir satır əlavə edib "bu test xətti üçün" və faylını saxladı, sonra aşağıdakı əmrləri buraxdım

  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' 

Github kodunu basmadım, indi bu tövsiyəni ləğv etmək istəyirəm.

Bunun üçün istifadə etdim

  git reset --hard HEAD~1 

Lakin README faylından yeni əlavə xətt "bu test xətti üçün" itirdim. Bu olmamalıdır. Orada olması üçün məzmuna ehtiyacım var. Məzmunu saxlamaq və yerli tövsiyəmi ləğv etmək üçün bir yol varmı?

560
31 янв. 31 yanvarda Amal Kumar S tərəfindən təyin olundu 2011-01-31 15:14 '11 saat 15:14 'də 2011-01-31 15:14
@ 7 cavab

Yalnız --hard olmadan git reset istifadə edin - bayraq bayrağı:

 git reset HEAD~1 

PS: Unix-based sistemlərdə HEAD~1 istifadə edə bilərsiniz. Windows'da HEAD^ işləməyəcək, çünki satırın davamı ^ . Beləliklə, əmrinizdən soruşur ki, More? sizdən soruşursunuz More? .

1085
31 янв. Cavab 31 yanvarda Koraktor verilir 2011-01-31 15:17 '11 at 15:17 2011-01-31 15:17

İstifadə edin --soft yerine --hard bayrağı:

border=0
 git reset --soft HEAD^ 
143
10 авг. Cavab TpED 10 avqustda verilir . 2012-08-10 11:02 '12 at 11:02 pm 2012-08-10 11:02

Bir öhdəliyin ortasında (yəni redaktorda) varsa, onu əvvəlki bütün yuxarıda göstərilən bütün sətirləri silərək ləğv edə bilərsiniz. Bu, törətməyi kəsəcək.

Beləliklə, öhdəlik mesajının boş olduğu üçün bütün xətləri silin və sonra faylı saxlaya bilərsiniz:

2019

10 марта '17 в 0:09 2017-03-10 00:09 Cavab inostia 10 mart '17 'də 0:09 2017-03-10 00:09' də verilir

Git'i parametrlərdən birini istifadə edərək sıfırlamağı yerinə yetirərkən indeksinizlə (sonrakı tövsiyə olacaq faylların dəstəyi) və iş kitabçasına nə edəcəyinizi izah edə bilərsiniz:

--soft : yalnız --soft sıfırlanacaq və indeks və işçi qovluğu dəyişdirilməyəcək.

--mixed : bu başlığı görə indeksini yenidən --mixed təsirlənməyəcəkdir. Bütün dəyişikliklər iş siyahısında qalacaq və dəyişiklik şəklində görünür.

--hard : --hard hər şeyi sıfırlar (işləyir, indeks, işçi qovluğu).

Sizin vəziyyətinizdə git reset --soft dəyişikliklərinizi index və işləyən git reset --soft saxlamaq üçün - git reset --soft istifadə edirəm. Daha detallı bir izahat üçün bunu gözdən keçirin.

5
29 мая '18 в 13:22 2018-05-29 13:22 Cavab Nesha Zoric tərəfindən 29 may 1818-də saat 13: 18- də 2018-05-29 13:22

Yapmanız gereken ilk şey, mesajı silmeden əvvəl yerli dəyişiklikləri saxlamaq istəmədiyinizi öyrənməkdir.

Hazırkı mesajı göstərmək üçün git log istifadə edin və sonra silmək istədiyinizə deyil, silməkdən əvvəl commit_id'i tapın.

Yerli olaraq dəyişdirilmiş faylları saxlamaq istəyirsinizsə, sadəcə mesajı silin:

git reset --soft commit_id

Bütün yerli olaraq dəyişdirilmiş faylları və mesajı silmək istəsəniz:

git reset --hard commit_id

Nə fərq yumşaqçətindir

2
02 сент. Cavab səhvdir 02 sep . 2018-09-02 06:43 '18 də 6:43 'də 2018-09-02 06:43

Aşağıdakı əmrləri istifadə edin: $ git reset HEAD ~ 1 Bundan sonra, aşağıda göstərildiyi kimi qaytarılan faylları da görüntüləyə bilərsiniz.

Sıfırdan sonra müəyyənləşdirilmiş dəyişikliklər: M tətbiq / config / config.php M tətbiq / config / database.php

1
14 мая '18 в 16:25 2018-05-14 16:25 cavab 14 may, 14:00, 14:00, 2018-05-14 16:25 verilir

Git sıfırlama - fərqli, --soft və --hard arasındakı fərq

Önkoşul: depolarınızdakı mövcud faylda bir dəyişiklik edildikdə, bu dəyişiklik başlanğıcda dəqiqləşdirilməmişdir. Dəyişiklikləri etmək üçün onu hazırlamalısınız, yəni git add etməklə indeksə əlavə etməkdir. Təqdim etmə əməliyyatı zamanı yerləşdirilən fayllar indeksə əlavə olunur.

Məsələn nümunə götürək:

 - A - B - C (master) 

HEAD C işarə edir və indeksi C cavab verir C

- Microsoft

  • git reset --soft B silmək üçün git reset --soft B yerinə git reset --soft B - git reset --soft Bgit reset --soft B
  • Master / HEAD indi B-ə işarə edir, lakin indeks hələ də C-dən dəyişir.
  • git status işləyərkən git status mərhələli olaraq C- də endeksli faylları görə bilərsiniz.
  • Bu nöqtədə git commit qaçışları C ilə eyni dəyişikliklərlə yeni bir öhdəlik meydana gətirəcək

- döydü

  • git reset --mixed B
  • İcra edərkən master / HEAD B işarə edir və istifadə edilən qarışıq bayrağı səbəbindən indeks də B matçına dəyişir .
  • İndi indiyədək HEAD-a cavab verdiyindən , heç bir şey olmayacaq.
  • İş dizinindəki dəyişikliklər hələ də var, ancaq indeksdə olmadığı üçün git dövləti onları sanki göstərmir .
  • Onları düzəltmək üçün git add və sonra adi olaraq düzəltməlisiniz.

- xard

  • git reset --hard B
  • Master / HEAD-i yerinə yetirərkən B-ə işarə edəcək və işçi qovluğunuzu dəyişdirəcəkdir
  • C'ye əlavə edilən dəyişikliklərbütün undimmitted dəyişikliklər silinəcəkdir .
  • İş nüsxəsində olan fayllar B törətməyə uyğun olacaq, bu, C törətmək üçün edilmiş bütün dəyişikliklərin itirilməsinə gətirib çıxaracaq, həm də gözlənilməz dəyişikliklərə gətirib çıxaracaq.

Ümid edirəm ki, istifadə etmək üçün mövcud olan bayraqları git reset əmri ilə müqayisə etmək kimsə ağıllı şəkildə istifadə etməyə kömək edəcəkdir. Daha çox məlumat link1 link2 üçün əlaqə saxlayın

0
18 янв. Cavab Keshan Nageswaran tərəfindən verilir 18 Yanvar 2019-01-18 19:48 '19 'da 7:48 ' də 2019-01-18 19:48 'də

etiketləri ilə bağlı digər suallar və ya sual