Gitteki son əməlləri necə geri ala bilərəm?

Səhv faylları təsadüfən Gitə göndərdim, amma serverə hələ bir öhdəlik vermədim.

Bu əməlləri yerli ehtiyatdan necə ləğv edə bilərəm?

18909
29 мая '09 в 21:09 2009-05-29 21:09 Hamza Yerlikaya 29 May '09 'da 21:09' da soruşdu 2009-05-29 21:09
@ 92 cavab

Geri al və təkrarlayın

20425
29 мая '09 в 21:13 2009-05-29 21:13 Esko Luontola'nın 29 May 'da 21:13' də verdiği cavabda , 21:13 'de 2009-05-29 21:13' de

Təyinatı ləğv etmək, necə işlədiyini bilmirsinizsə, bir az qorxudur. Anladığınız halda, həqiqətən təəccüblü asanlıqla.

Deyirsən ki, C var, burada C sizin HEAD və (F) fayllarınızın dövlətidir.

  (F) ABC ↑ master 

C törətdiyini yenidən qurmaq və yenidən görməyiniz . Bunu edirsən:

 git reset --hard HEAD~1 

Nəticə:

  (F) AB ↑ master 

İndi B - HEAD. Siz istifadə --hard bəri, --hard zaman fayllarınız öz vəziyyətinə qayıdır.

Ah, ancaq C törətmək bir fəlakət deyil, çox az olduğunu güman et. Bir öhdəliyini ləğv etmək istəyirəm , lakin ən yaxşı işləməyinizdən əvvəl dəyişikliklərinizi kiçik bir redaktə edin. Yenidən başlayaraq, C ilə başınız ilə:

  (F) ABC ↑ master 

Siz bunu tərk edərək edə bilərsiniz:

border=0
 git reset HEAD~1 

Bu vəziyyətdə nəticə belədir:

  (F) ABC ↑ master 

Hər iki halda da, HEAD son əməl üçün bir göstəricidir. git reset HEAD~1 , Git'e HEAD işaretçisini bir taahhüdü geri götürməsini söyləyəcəksiniz. Amma (istifadə --hard ) fayllarınızı olduğu kimi tərk edirsiniz. İndi git status C qeydiyyata git status dəyişiklikləri göstərir. Siz heç bir şey itirmədi!

Bir işıq toxunuşu üçün həddən artıq ləğv edə bilərsiniz , ancaq faylları və indeksinizi tərk edin :

 git reset --soft HEAD~1 

Bu faylları yalnız tək buraxmır, hətta indeksinizi tək buraxır. git status aldığınızda, indeksin əvvəlki kimi eyni faylları olduğunu görəcəksiniz. Əslində, bu əmrdən hemen sonra, siz git commit yerinə yetirə bilərsiniz və yalnız etdiyiniz eyni əməlinizi təkrarlayacaqsınız.

Daha bir şey: ilk nümunədə olduğu kimi bir öhdəliyini yox etdiyini düşünürsən , amma sonradan sizə lazım olduğunu gördünüzmü ? Xeyir, sağ olsun?

Xeyr, geri almaq üçün hələ bir yol var. git reflog , və siz (qismən), məhv etdiyiniz öhdəliyinizi tapın və ətrafında hərəkət etdiyiniz ŞAS'ı (yəni hash) bir siyahı görəcəksiniz.

 git checkout -b someNewBranchName shaYouDestroyed 

İndi bu törətməni diriltdin. Komitələr həqiqətən təxminən 90 gündür Gitdə məhv edilmir, belə ki adətən geri qayıda və xilas olmaq istəmədiyinizi xilas edə bilərsiniz.

10072
29 июля '11 в 1:22 2011-07-29 01:22 Cavab Ryan Lundy tərəfindən 29 İyul 2011 tarixində 1:22 2011-07-29 01:22 tarixində verilir

Anlamaq üçün bir müddət vaxtım oldu, belki bu kimsə kömək edəcək ...

İctimaiyyət hesabatınızın (məsafədən saxlanılan qovluğa tıkladığınıza) bağlı olaraq, sonuncu tövsiyənizi "əldən verməyin" iki yolu var:

Yerli bir işi ləğv etmək üçün necə

Bunu yerli olaraq etdiyim söyləsin, amma indi bu fikri aradan qaldırmaq istəyirəm.

 git log commit 101: bad commit # latest commit, this would be called 'HEAD' commit 100: good commit # second to last commit, this is the one we want 

Sonuncu öhdəlikdən əvvəl hər şeyi bərpa etmək üçün reset əvvəl işə başlamazdan əvvəl reset HEAD :

 git reset --soft HEAD^ # use --soft if you want to keep your changes git reset --hard HEAD^ # use --hard if you don't care about keeping the changes you made 

İndi git log göstərir ki, sonuncu təyəmiz qaldırılmışdır.

Bir ictimai düzəlişi necə ləğv edə bilərəm

Əgər artıq zəmanətinizi ictimaiyyətə çatdırmış olsanız, əvvəlki tövsiyə etdiyiniz dəyişiklikləri (mövcud HEAD) "qaytarır" edən yeni bir öhdəlik yaratmalısınız.

 git revert HEAD 

İndi dəyişiklikləriniz geri alınacaq və əməl etməyə hazır olacaqsınız:

 git commit -m 'restoring the file I removed by accident' git log commit 102: restoring the file I removed by accident commit 101: removing a file we don't need commit 100: adding a file that we need 

Daha ətraflı məlumat üçün, Git əsaslarını yoxlayın - Şeyi ləğv edin.

1879
16 июня '11 в 20:27 2011-06-16 20:27 Cavab Andrew tərəfindən 16 iyun 2011-ci il tarixində saat 20: 27-də verilir

Istədiyiniz şeyi 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əməyiniz kimi görünür.

Hələ tıkladığınız halda bunu etməlisiniz. Tıkladıysanız, normal olaraq düzelteceksiniz.

1663
29 мая '09 в 21:16 2009-05-29 21:16 cavab 29 may 2009 -cu il tarixində, 21 may 2009 -cu il tarixli 21:16- də verilmişdir
924
29 мая '09 в 21:13 2009-05-29 21:13 Lennart Koopmann 29 may 09: 09-da 21:13, 2009-05-29 21:13 cavab verib

Sonuncu təyanı dəyişdirmək

Dizindəki faylları dəyişdirin:

 git rm --cached *.class git add *.java 

Sonra, əgər bir xüsusi şöbə varsa, tövsiyəni dəyişdirin :

 git commit --amend 

Yoxsa bu paylaşılan bir filialsa, yeni bir öhdəlik yerinə yetirsin:

 git commit -m 'Replace .class files with .java files' 


( əvvəlki tövsiyəni dəyişdirmək, inanılmaz interaktiv rebaza istifadə etmək)


ProTip ™: bu təkrarlanmanı dayandırmaq üçün *.class .class əlavə edin.


Düzeltməni qaytarmaq üçün

Təqdimatın dəyişdirilməsi sonuncu təyanı dəyişdirməyiniz lazım olsa ideal bir həlldir, ancaq reset daha ümumi bir həlldir.

Hər hansı bir fikstür üçün keçidi sıfırlayaraq bilərsiniz:

 git reset @~N 

N nin HEAD əvvəl HEAD gələn sayıdır və @~ əvvəlki işə geri dönər.

Buna görə bir öhdəliyə dəyişiklik etmək əvəzinə istifadə edə bilərsiniz:

 git reset @~ git add *.java git commit -m "Add .java files" 

Xüsusilə, nə --soft daha yaxşı başa düşmək üçün, git help reset --soft --mixed--hard .

Reflog

Bədbəxt olmağınız halında, məsələn, uzaq məsuliyyət tapmaq üçün reflog istifadə edə bilərsiniz:

 $ git reset @~ $ git reflog c4f708b HEAD@{0}: reset: moving to @~ 2c52489 HEAD@{1}: commit: added some .class files $ git reset 2c52489 ... and you're back where you started 


705
31 июля '10 в 12:39 2010-07-31 12:39 Cavab Zaz verildi 31 iyul 'da 12:39' də 2010-07-31 12:39

git revert <commit-id> istifadə edin git revert <commit-id>

Bir düzeltme kimliği almaq üçün, yalnız git log istifadə edin

585
25 мая '12 в 19:04 2012-05-25 19:04 Cavab Jaco Pretorius tərəfindən verilir May 25, '12 at 19:04 2012-05-25 19:04

Yerli təyini tamamilə ləğv etməyi planlaşdırırsanız, nə dəyişdiyinizdən asılı olmayaraq, bir öhdəlik götürdünüz və əgər narahatlıq etməsəniz, aşağıdakı əmrinizi yerinə yetirin.

 git reset --hard HEAD^1 

(Bu əmr bütün öhdəliklərinizə diqqət yetirməyəcək və dəyişiklikləriniz yerli iş ağacınızdan tamamilə məhv olacaq). Bir öhdəliyi ləğv etmək istəyirsinizsə, lakin səhnə sahəsinə dəyişiklik etmək istəyirsən (töhfə verməzdən əvvəl, git add ), aşağıdakı əmri çalıştırın.

 git reset --soft HEAD^1 

İndi sabit fayllarınız hazırlıq sahəsindəki bölmədədir. Faylları aşmaq istəyirsinizsə, yanlış məzmunu redaktə etməlisiniz, çünki aşağıdakı əmri çalıştırın

 git reset HEAD 

İndi köçürülmüş fayllar mərhələli sahədən çatdırılmayan əraziyə gəlir. İndi fayllar redaktə etməyə hazırdır, buna görə də, nə dəyişdiyinizdən asılı olmayaraq, düzəliş etmək, əlavə etmək və yeni / yeni bir öhdəlik yaratmaq istəyir.

Daha çox

471
31 янв. Cavab Madhan Ayyasamy 31 yanvar verilir 2013-01-31 10:06 '13 'da 10:06' da 2013-01-31 10:06

Git Əlavələri yüklənmişdirsə, sonuncu git undo üçün git undo bilərsiniz. git undo 3 qaytarın, son 3 əmri ləğv edin.

450
13 дек. cavabı 13 dekabrda verilir . 2011-12-13 13:18 '11 'da 13:18' da 2011-12-13 13:18

Son 5 əmrimizi paylaşılan depoda ləğv etmək istəmişdim. Mən gəzmək istədiyim revizyon idinə baxdım. Sonra aşağıdakıları yazdım.

 prompt> git reset --hard 5a7404742c85 HEAD is now at 5a74047 Added one more page to catalogue prompt> git push origin master --force Total 0 (delta 0), reused 0 (delta 0) remote: bb/acl: neoneye is allowed. accepted payload. To git@bitbucket.org:thecompany/prometheus.git + 09a6480...5a74047 master -> master (forced update) prompt> 
418
06 апр. Cavab neoneye 06 apr verilir . 2012-04-06 16:58 '12 at 4:58 pm 2012-04-06 16:58

Mən bu tapşırıq üçün git rebase -i ni istifadə etməyi üstün edirəm, çünki yaxşı bir siyahı var ki, buradan qurtarmaq üçün git rebase -i seçə bilərəm. Burada digər cavablardan bəziləri kimi aydın ola bilməz, ancaq doğru görünür.

Siyahıda istədiklərinizin sayını seçin və sonra zəng edin (son üçü almaq üçün)

 git rebase -i HEAD~3 

Nümunə siyahısı

 pick aa28ba7 Sanity check for RtmpSrv port pick c26c541 RtmpSrv version option pick 58d6909 Better URL decoding support 

Git silinəcək hər hansı bir xəttin törədilməsini aradan qaldıracaq.

396
25 окт. Steven Penny tərəfindən oktyabrın 25-də verdiyi cavab 2012-10-25 06:41 '12 saat 06:41 'da 2012-10-25 06:41

Əvvəlki yerli töhfəni necə düzəltmək olar?

Git-gui (və ya ekvivalenti) istifadə edin - git commit --amend . GUI-dən fərdi faylları törətmədən əlavə edə və ya silə bilərsiniz. Həm də mesajı dəyişə bilərsiniz.

Əvvəlki yerli törətməni necə ləğv etmək olar?

Sadəcə gitk əvvəlki yerə qaytarın (məsələn, gitk və ya git rebase ). Sonra dəyişiklikləri xilas edilmiş surətdən yenidən tətbiq edin. Yerli saxlanmada zibil toplandıqdan sonra istenmeyen törətmənin əsla olmaması kimi olacaq. Bütün bunları bir əmrlə etmək üçün, git reset HEAD~1 .

Bir xəbərdarlıq sözü : git reset diqqətsiz istifadə edilməsi işlədiyiniz kopyanızı qarışdırmaq üçün yaxşı bir yoldur. Git yeniləmələrini təklif edirəm, əgər onlar bunu edə bilərlərsə.

Bir ictimai borcunu necə ləğv etmək olar?

Dəyişiklikləri ləğv etmək üçün seçilmiş albalı tərs edin ( git-geri ).

Hələ də mövzuya başqa dəyişikliklər etmədiyiniz təqdirdə, sadəcə ...

 git revert --no-edit HEAD 

Daha sonra yenilənmiş filialı ümumi ehtiyata göndərin.

Təqdimat tarixi həm əməlləri ayrı-ayrılıqda göstərəcəkdir.


İsteğe bağlı: ictimai deposunda xüsusi şöbələri düzəldin

Bu təhlükəli ola bilər - filialın yerli bir nüsxəsi olduğundan əmin olun.

Həmçinin qeyd olun: əgər başqası filialda işləyirsə, bunu etmək istəmirsiniz.

 git push --delete (branch_name) ## remove public version of branch 

Şöbünüzü yerli olaraq təmizləyin, sonra söndürün ...

 git push origin (branch_name) 

Normal vəziyyətdə, ehtimal ki, özəl sektorda tarixinizə toxunulmayacaqsınız, narahat olmayın. Yalnız bir sonrakı törətməni vurun (yuxarıda "ictimai törətməni necə ləğv edə bilərsiniz") və sonra hekayəni gizlətmək üçün squash birləşməsi edin .

381
23 апр. cavab noar verildi 23 Apr 2013-04-23 20:27 '13 at 20:27 2013-04-23 20:27

Bir səhv etsən, ancaq tıklamadıysan,

 git reset --soft HEAD~1 

HEAD ~ 1 başın qarşısında duran qısadır. Alternativ olaraq, onu yenidən qurmaq istəyirsinizsə, SHA-1 hash müraciət edə bilərsiniz. - Təqdimatı aradan qaldıracaq, lakin gediş statusu dedikdə, bütün dəyişikliklər "dəyişikliklər ediləcək".

Səsdən əvvəl " --hard " istifadə edildikdən sonra, iş ağacında izlənilən fayllardan hər hansı bir dəyişiklikdən xilas olmaq istəyirsinizsə.

Və ya

Əgər siz artıq tıkladıysanız və birisi çəkdiyiniz halda, adətən mənim işimdirsə, sıfırlama sıfırından istifadə edə bilməzsiniz. Buna baxmayaraq,

 git revert HEAD 

Bu, təsadüfi bir düzəlişlə daxil edilən hər şeyi ləğv edən yeni bir düzeltme yaradacaq.

306
03 сент. cavab santos_mgr 03 sep verilir . 2014-09-03 10:15 '14 saat 10:15 'da 2014-09-03 10:15

Əgər onu daimi olaraq ləğv etmək istəyirsənsə və bəzi depoları klonlaşdırdın

Düzeltilmiş kimlik görülə bilər.

 git log 

Sonra edə bilərsiniz -

 git reset --hard <commit_id> git push origin <branch_name> -f 
302
17 мая '13 в 16:02 2013-05-17 16:02 17 may, '13 'da 4:02' də yoxsul tərəfindən verilən cavab 2013-05-17 16:02

SourceTree'da (GitHub üçün GUI), törətməni sağ tıklaya və Reverse Fix'i yerinə yetirə bilərsiniz. Bu, dəyişikliklərinizi geri götürməlidir.

Terminalda:

Siz də istifadə edə bilərsiniz:

 git revert 

Və ya:

256
28 июня '13 в 13:18 2013-06-28 13:18 Cavab Varun Parax tərəfindən 28 İyun 2013 tarixində 13:18 2013-06-28 13:18

Vahid komanda:

241
05 марта '14 в 16:55 2014-03-05 16:55 Cavab 05-14 mart 2013-cü il tarixində Maniş Shrivastava tərəfindən verilir. 2014-03-05 16:55

Aşağıdakı komandanı istifadə edərək, onu sıfırlayın:

 git reset --soft HEAD~1 

git reset nə əsasən geri dönmək istədiyiniz hər hansı bir --soft reset , o zaman - --soft ilə --soft , geri dönəcəkdir, lakin dəyişiklikləri fayllarınıza saxlaya bilərsiniz, belə ki səhnəyə bir fayl əlavə edildi, HEAD şöbənin rəhbəri və ~1 ilə birləşdiyiniz halda (bu halda HEAD^ istifadə), istədiyiniz bir əmrinə qayıdır ...

Gerçek durumlarda ve kodun icrasında gerçekleşebilecek bütün adımları da daxil olmaqla, aşağıdakı resimdeki adımları sizin üçün daha ayrıntılı olaraq oluştururum:

2019

Doğru vəziyyəti tapmaq üçün reflog istifadə edin.

 git reflog 

2019

172
07 янв. Shubham Chaudhary tərəfindən verilmiş cavab 07 Jan 2014-01-07 01:34 '14 at 1:34 2014-01-07 01:34

"Son işdən əvvəl iş ağacını yenidən qurma"

 git reset --hard HEAD^ 

"İş ağacından silinməmiş faylları sil"

 git clean 

bax - tez istinad et

Qeyd. Bu əmr əvvəlki törətməni aradan qaldıracaq, buna görə ehtiyatla istifadə edin! git reset --hard - təhlükəsizdir -

167
03 окт. Cavab verildi Ravi_Parmar Oct 03. 2013-10-03 15:43 '13 at 15:43 2013-10-03 15:43

İlk çalıştırma:

 git reflog 

Bu, köşkədə çıxış etdiyiniz bütün mümkün tədbirləri, məsələn, törətmək, birləşdirmək, çəkmək və s. Göstərəcəkdir.

Sonra da:

 git reset --hard ActionIdFromRefLog 
150
11 окт. Cavab Əli Əli tərəfindən 11 oktyabrda verilir. 2013-10-11 17:41 '13 at 17:41 2013-10-11 17:41

Sonuncu işi ləğv edin:

git reset --soft HEAD^ və ya git reset --soft HEAD~

Bu, son törətməni geri qaytaracaq.

Burada - --soft - in parametrlərini yenidən --soft deməkdir.

HEAD~ ya da HEAD^ qarşısında bir tövsiyə etmək deməkdir.


Sonuncu təyanı yenisi ilə dəyişdirin:

 git commit --amend -m "message" 

Bu, sonuncu təyanı yeni bir fixer ilə əvəz edəcək.

141
06 марта '16 в 14:53 2016-03-06 14:53 cavab 06 mart 2013 - il saat 14: 00 -da akshay_rahar cavab verilir

Başqa bir yol:

Qayıtmaq istədiyiniz filiala müraciət edin, sonra da yerli işçi surətini uzaq serverda sonuncu olmaq istəyən tövsiyəyə qaytarın (hecelenden sonra). Bunu etmək üçün mən SourceTree-də sağ tıkladım və "Bu qərara BRANCHNAME'i sıfırla" etdim.

Sonra yerli deposu qovluğuna gedin və aşağıdakı əmrləri yerinə yetirin:

 git -c diff.mnemonicprefix=false -c core.quotepath=false push -v -f --tags REPOSITORY_NAME BRANCHNAME:BRANCHNAME 

Bu, yerli əmanətdəki cari birdən sonra bütün əməlləri siləcək, ancaq bir filial üçün.

136
13 мая '13 в 20:12 2013-05-13 20:12 Cavab CommaToast 13 may, 13 saat 20:12 2013-05-13 20:12 verilir

git log edin və ən son hash kodunu axtarın və daxil edin:

 git reset <the previous co> 
127
15 мая '13 в 16:12 2013-05-15 16:12 cavab 15 may 2013 - il tarixində 16:12 2013-05-15 16:12 istifadəçi tərəfindən verilir

Mənim vəziyyətimdə mən təsadüfən istəmədim ki, bəzi faylları düzəldirdim. Beləliklə, mən aşağıdakıları yerinə yetirdim və çalışdı:

 git reset --soft HEAD^ git rm --cached [files you do not need] git add [files you need] git commit -c ORIG_HEAD 

Sonuçları gitk və ya git logla kontrol edin

124
18 июля '13 в 9:41 2013-07-18 09:41 Cavab egridasov tərəfindən verilir 18 iyul '13 saat 9:41 2013-07-18 09:41

İşlərinizi və ağacınızı görmək üçün SourceTree (Git üçün qrafik vasitə) istifadə edin. Sağa vuraraq onu əl ilə yenidən qura bilərsiniz.

113
29 авг. Cavab iOS Coder 29 aug verilir. 2013-08-29 19:18 '13 saat 19:18 'da 2013-08-29 19:18

Sadə, əmr xəttində işləyin:

 git reset --soft HEAD~ 
110
06 янв. Cavab 06 yanvar tarixində verildi 2016-01-06 17:10 '16 saat 17:10 'da 2016-01-06 17:10

İki əsas ssenarisi var.

Təqəbi bastırmadın

Əgər problem sizin etdiyiniz əlavə fayllar ilə bağlıdırsa (və onları deposunda istifadə etmək istəmirsinizsə), onları git rm ilə silə bilərsiniz və sonra -

 git rm <pathToFile> 

Ayrıca, bütün -r ilə silə bilərsiniz və hətta digər bash əmrləri ilə birləşdirə bilərsiniz.

 git rm -r <pathToDirectory> git rm $(find -name '*.class') 

Faylları sildikdən sonra , seçim - ixtiyari istifadə edərək tövsiyə edə bilərsiniz

 git commit --amend -C HEAD # the -C option is to use the same commit message 

Bu, son yerli tövsiyəni yenidən yazmağa, lazımsız faylları aradan qaldırmağa imkan verəcəkdir. Bu fayllar heç vaxt itirməyəcək və GC vasitəsilə yerli .git deposundan da silinəcəkdir.

Zaten bir taahhüdü tıklattınız

Eyni həlli fərqli bir skriptə müraciət edə bilərsiniz və sonra -f etmək üçün keçid vermək mümkündür , ancaq bu, tövsiyə edilmir, çünki silinmiş tarixin fərqli bir dəyişikliklə əvəz edilməsi (bu, depoınıza zərər verə bilər).

Bunun əvəzinə, - --amend (bunu xatırla: "bu seçim sonuncu tövsiyənin tarixini yazır).

110
12 сент. cavab dseminara 12 sep verilir . 2014-09-12 17:51 '14 da 17:51 2014-09-12 17:51

Bunun bir çox yolu var:

Son əməlləri / əvvəlki əməlləri ləğv etmək əmrinə müraciət edin:

Diqqət: istifadə etməyin, nə etdiyinizi bilmirsən. --Hard çox təhlükəlidirfayllarınızı silə bilər .

Gitdə açmaq üçün əsas komanda:

 $ git reset --hard <COMMIT -ID> 

və ya

 $ git reset --hard HEAD~<n> 

COMMIT ID : Təqdim etmək üçün ID

n: qayıtmaq istədiyiniz son əmrlərin sayı

Вы можете получить идентификатор фиксации, как показано ниже:

 $ **git log --oneline** d81d3f1 function to subtract two numbers be20eb8 function to add two numbers bedgfgg function to mulitply two numbers 

где d81d3f1 и be20eb8 - идентификатор commit.

Теперь рассмотрим некоторые случаи:

Предположим, вы хотите вернуть последнее коммит 'd81d3f1'. Вот два варианта:

 $ git reset --hard d81d3f1 

və ya

 $ git reset --hard HEAD~1 

Предположим, вы хотите вернуть commit 'be20eb8':

 $ git reset --hard be20eb8 

Для получения более подробной информации вы можете обратиться и попробовать другие команды для сброса головы в указанное состояние:

 $ git reset --help 
110
ответ дан Upen 18 февр. '16 в 6:27 2016-02-18 06:27

Для локальной фиксации

 git reset --soft HEAD~1 

или если вы точно не помните, в какой фиксации это возможно, вы можете использовать

 git rm --cached <file> 

Для нажатой фиксации

Правильный способ удаления файлов из истории репозитория - использование git filter-branch . То есть,

разделе git-filter-branch (1) Manual . 

109
ответ дан geoom 04 марта '14 в 7:35 2014-03-04 07:35

Другие вопросы по меткам или Задайте вопрос