Github haqqında bir öhdəlik aradan qaldırılması üçün necə?

Mən "təsadüfən" github üzrə tövsiyə basıb.

Bu düzeltmeyi aradan qaldırmaq mümkündürmü?

Daha əvvəl olduğu kimi GitHub deposunu qaytarmaq istəyirəm.

1261
16 янв. 16 yanvar həkimlər tərəfindən təyin olundu 2009-01-16 02:20 '09 at 2:20 'da 2009-01-16 02:20
@ 20 cavab

Qeyd: Aşağıdakı git rebase -i alternativinə baxın -

git reset --soft HEAD^

Əvvəlcə yerli depoda törətməyi aradan qaldırın. Bunu git rebase -i istifadə edərək edə bilərsiniz. Məsələn, bu sizin sonuncu düzəlişinizdirsə, git rebase -i HEAD~2 edə bilərsiniz və görünən redaktorda ikinci satırı silin.

Daha sonra git push origin +branchName istifadə edərək zorla GitHub vurun

Daha ətraflı məlumat üçün bax: Git Magic 5-ci fəsil: Tarixdən dərslər və digərləri (məsələn, köhnə əməlləri silmək istəsəniz).

Oh, və iş ağacınız çirkin olsaydı, ilk növbədə qaşqabağını yerinə yetirməli, sonra isə git stash apply olunmalıdır.

917
16 янв. Cavab Can Can Berk Güder tərəfindən verildi 2009-01-16 02:24 '09 saat 02:24 'da 2009-01-16 02:24
 git push -f origin HEAD^:master 
border=0

Bu, kliklə "geri qaytarmaq" lazımdır.

796
16 янв. Cavab Dustin Jan 16 verilir 2009-01-16 03:11 '09 at 3:11 pm 2009-01-16 03:11

Sadə bir geri dönüş üçün, bu səhvdirsə (repoed və sonra yeni bir deyil, orijinal geri qayıda bilər), başqa bir ehtimal var:

 git reset --hard 71c27777543ccfcb0376dcdd8f6777df055ef479 

Aydındır ki, qayıtmaq istədiyiniz sayını dəyişdirin.

Hər şey yenidən basıldıqdan sonra silinib. Bunun üçün növbəti addım olacaq:

 git push --force 
245
21 апр. Cavab CodeWalrus 21 Apr tərəfindən verilir. 2014-04-21 23:26 '14 at 23:26 2014-04-21 23:26
  • qayıtmaq istədiyiniz tövsiyəni tapmaq üçün gedin

  • git push origin +7f6d03:master 7f6d03 bir törətmənin səhv təkan qarşısında bir törətdiyi zaman. + force push

Və nədir.

Probleminizi asan və sadə bir şəkildə həll edən çox yaxşı bir kılavuzdur!

56
09 февр. Cavab kate 09 fevral verilir. 2016-02-09 14:58 '16 at 2:58 pm 2016-02-09 14:58

Tamamilə silmək üçün önbelleğinizi təmizləmək lazımdır. Bu keçid yardım səhifəsi sizə kömək edəcəkdir. (bu mənə kömək etdi) http://help.github.com/remove-sensitive-data/

34
28 июля '11 в 1:38 2011-07-28 01:38 Cavab 28 iyul 'da saat 11: 38-də verilir

git revert üçün git revert istifadə edin.

git -revert - bəzi mövcud borcları ləğv edin

 git revert [--edit | --no-edit] [-n] [-m parent-number] [-s] <commit>... git revert --continue git revert --quit git revert --abort 

Müvafiq yamalar tərəfindən edilən dəyişiklikləri ləğv edin və yazan bəzi yeni əməlləri qeyd edin. Bu, iş ağacınızın təmiz olduğunu tələb edir (HEAD'ı təyin etmədən dəyişiklik olmadı).

21
17 июля '13 в 11:21 2013-07-17 11:21 Cavab Jyoti Prakash tərəfindən 17 İyul, '13 'də 11:21' də verildi 2013-07-17 11:21
 1. git reset HEAD^ --hard 2. git push origin -f 

Bu iş mənim üçündir.

15
10 авг. Cavab Hilen 10 aug verilir . 2016-08-10 11:41 '16 saat 11:41 'də 2016-08-10 11:41

Silinmədən sonra dəyişikliklərinizi saxlamaq istəyirsinizsə:

1 - Jurnaya qayıtmaq istədiyiniz fiqurun linkini kopyalayın:

 git log 

2 - Təqdimat bağlantısına keçin:

  git reset <commit_ref> 

3 - Uzaqdan vurduqdan sonra istifadə etmək üçün yanlış fiksasiya ilə yerli dəyişiklikləri qeyd edin / saxlamaq:

  git stash 

4 - Uzaq havadakı dəyişiklikləri (-f və ya -force) basın:

 git push -f 

5 - saxlanılan dəyişiklikləri yerli ehtiyata qaytarın:

 git stash apply 

7 - Değişikliklerinizde lazımsız / yeni fayllarınız varsa, bunları vermeden önce gitmek üçün əlavə etmeniz lazımdır:

 git add . 

6 - bütün lazımi dəyişiklikləri əlavə edin, sonra zəruri faylları kopyalayın (və ya hər hansı bir faylın adını, yerli faylındakı bütün faylları düzəltmək üçün təyin edin)

 git commit -m "<new_commit_message>" <file1> <file2> ... 

və ya

 git commit -m "<new_commit_message>" . 
12
07 июня '17 в 17:44 2017-06-07 17:44 Cavan Loukan ElKadi tərəfindən 07 iyun '17' də 17:44 2017-06-07 17:44 'də verildi

Uzaq havadakı bir öhdəliyi aradan qaldırmaq üçün:

  git push -f origin last_known_good_commit:branch_name 

Yerli deposunuzdan bir öhdəlik götürmək üçün:

 git reset --hard HEAD~1 

istinad

11
07 марта '17 в 4:27 2017-03-07 04:27 Cavab 07 mart '17 'də 4:27 2017-03-07 04:27' də George Moro tərəfindən verilir

Github şöbələrinə rəhbərlik etmək istədiyinizi göstərin və aşağıdakı əmrləri istifadə edin:

git push origin +[ref]:[branchName]

Məsələn, yalnız bir öhdəliyə qayıtmaq istəyirsənsə, məsələn, 7f6d03 və dəyişdirmək istədiyiniz filialın adı, məsələn, sihirbazdır və aşağıdakıları yerinə yetirin:

git push origin +7f6d03:master

Üstəgəl simvol, təfsir kimi şərh edilir, bu hekayəni yenidən --force lazım olacaqdır.

Qeyd edək ki, hər hansı bir zaman - --force zaman, filialı birləşdirən digər millətlərin tarixini yenidən yaza bilərsiniz. Ancaq problemi tez bir şəkildə həll edərsənsə (hər kəs sənin şöbən gizləməzdən əvvəl) problemi olmayacaqsa.

8
22 июня '15 в 13:36 2015-06-22 13:36 cavab 22 iyun, '15 'də 1:36' də veriləcək

Siz qayıtmaq istədiyiniz əməllərdən ötrü haşınızın olduğunu bilmək lazımdır. GitHub URL'sindən istifadə edə bilərsiniz, məsələn: https://github.com/your-organization/your-project/commits/master

Söyləyin ki, törətdiyi hash (geri dönmək istədiyiniz) "99fb454" (uzun versiya "99fb45413eb9ca4b3063e07b40402b136a8cf264"), onda yalnız lazımdır:

 git reset --hard 99fb45413eb9ca4b3063e07b40402b136a8cf264 git push --force 
7
20 дек. Benny Neugebauer tərəfindən verilmiş cavab 20 Dekabr. 2016-12-20 17:21 '16 saat 5:21 'də 2016-12-20 17:21

Bunu etdiyiniz təqdirdə gizli məlumatlarınız var, çünki digər cavablardan istifadə etməliyəm burada (genişləndirəcəyəm subutux istisna olmaqla).

Bu github dərslikindəki xarici alətdən istifadə etməyi tövsiyə edir, amma daxili alətdən istifadə etməyi üstün edirəm.

Birincisi, depounuzun bir nüsxəsini çıxarın . Sonra:

 git filter-branch --force --index-filter \ 'git rm --cached --ignore-unmatch PATH-TO-YOUR-FILE-WITH-SENSITIVE-DATA' \ --prune-empty --tag-name-filter cat -- --all 

Bundan sonra , ehtiyatınız istədiyiniz dövlətdə olduğundan əmin olun . Zənginlə müqayisə etmək istəyə bilərsiniz.

Bunun doğru olduğuna əminsən, onda:

 #get rid of old unreferenced commits (including the data you want to remove) git gc --prune=now git push origin --force --all 

Yalnız halda yerli bir ehtiyatı müvəqqəti saxlaya bilərsiniz.

5
02 янв. cavab 02 yanvar goncalopp tərəfindən verilir 2017-01-02 17:01 '17 saat 17.00 'də 2017-01-02 17:01

Filialı qorumaq və birləşmə strukturunu saxlamaq üçün, --preserve-merges yerinə yetirdikdə - --preserve-merges istifadə etmək vacibdir:

 git rebase --preserve-merges -i HEAD^^ 
3
21 мая '14 в 3:09 2014-05-21 03:09 Cavab Carlos Mafla tərəfindən 21 May '14 'də 3:09 2014-05-21 03:09 ' də verilir

Yerli dəyişiklikləri ilk növbədə yan tərəfdə saxla (yedekləyin)

Ən son əməlləri görə bilərsiniz və sonra panoya göndərmək üçün "Tam SHA kopyalayın" düyməsini tıklayarak hash kararı seçin.

Son haşınız bir əməl kodu varsa, deyək, g0834hg304gh3084gh (məsələn)

Çalıştırmanız lazımdır:

git push origin +g0834hg304gh3084gh:master

Daha əvvəl kopyaladığınız hash'i "HEAD" revizyonu üçün istifadə edin.

Lazımi yerli dəyişiklikləri əlavə edin. Yapıldı;)

2
08 февр. Cavab 8 fevralda Dejan Dobromirov tərəfindən verilir. 2016-02-08 16:37 '16 saat 16:37 'da 2016-02-08 16:37

Bu əmrinizi terminalinizdə işləyin.

 git reset HEAD~n 

Məsələn, məsələn, yerli repo-dan son n əməlləri silin. HEAD ~ 2. Depoyunuza basmaq üçün git gücünü davam etdirin.

 git push -f origin <branch> 

Bu kömək edir!

1
18 янв. Kentin Aguilar tərəfindən verilmiş cavab 18 yanvar 2017-01-18 05:23 '17 də 5:23 'də 2017-01-18 05:23' də

GitHub üçün - Yerli repo əməliyyatlarınızı (HARD) sıfırlayın və yeni bir filial yaradın. Yenidən basın. OLD şöbəsini silin. (Master filialı silsəniz, yeni filial yaradın)

0
20 сент. cavab M_R_K 20 sep verilir . 2017-09-20 05:32 '17 də 5:32 2017-09-20 05:32

interaktiv reboot aradan qaldırılması istəyirsinizsə,

git rebase -i HEAD~4

4 represents total number of commits to display count your commit and müvafiq olaraq dəyişdirmək 4 represents total number of commits to display count your commit and

və siyahıdan çıxarılan öhdəliyi aradan qaldır ...

dəyişiklikləri saxlamaq Ctrl + X (ubuntu) və ya : wq (centos)

İkinci üsul, qayıt

 git revert 29f4a2 #your commit ID 

bu, müəyyən fiksasiya qaytarılmasına gətirib çıxaracaq

0
15 нояб. Mohideen ibn Mohammed Nov 15 tərəfindən verilmiş cavab 2017-11-15 12:56 '17 da 12:56 2017-11-15 12:56

İşinizi qənaət edərək, sonuncu öhdəliyi silin:

 git reset --soft HEAD~1 

Yapılan işi məhv edərək son törətməni silin:

 git reset --hard HEAD~1 
0
15 нояб. Cavab Ekambaram E 15 noyabr tarixində verilir. 2017-11-15 15:39 '17 də 15:39 2017-11-15 15:39

Lazım olanı almaq üçün faylları əlavə edin / silin:

 git rm classdir git add sourcedir 

Sonra tövsiyəni dəyişdirin:

 git commit --amend 

Əvvəlki səhv düzəldici indeksin yeni vəziyyətini əks etdirmək üçün redaktə ediləcək - başqa sözlə, ilk növbədə heç bir səhv etmədiyiniz təqdirdə olacaq.

Henüz tıklamadıysanız bunu yalnız yapmanız gerektiğini lütfen unutmayın. Tıkladıysanız, düzeltmeyi normal olaraq düzeltmeniz lazımdır.

-1
07 янв. Cavab Çırağ Thakar tərəfindən verilir. 07 Yanvar 2016-01-07 09:20 '16 saat 09:20 'da 2016-01-07 09:20

Hekayənin yaxşı bir şəkildə yazılmaması. Biz git revert <commit_id> istifadə git revert <commit_id> , git revert <commit_id> müəyyən edilmiş git revert <commit_id> təmiz bir git revert <commit_id> yaradır.

Beləliklə, hekayə təkrar yazılmır, amma hər kəs bilir ki, bir dönüş var.

-2
17 июля '14 в 15:44 2014-07-17 15:44 Cavab verilir vivek_ganesan 17 iyul '14 15:44 2014-07-17 15:44

Gitub tags ilə bağlı digər suallar və ya bir sual