{"id":5290,"date":"2022-08-11T23:53:59","date_gmt":"2022-08-11T23:53:59","guid":{"rendered":"https:\/\/navhow.com\/?p=5290"},"modified":"2022-08-11T23:54:35","modified_gmt":"2022-08-11T23:54:35","slug":"how-to-roll-back-individual-files-and-folders-in-git","status":"publish","type":"post","link":"https:\/\/navhow.com\/pl\/how-to-roll-back-individual-files-and-folders-in-git\/","title":{"rendered":"Jak przywr\u00f3ci\u0107 pojedyncze pliki i foldery w Git"},"content":{"rendered":"<h2>Wst\u0119p<\/h2>\n<p>Git to doskona\u0142e narz\u0119dzie do utrzymywania ka\u017cdej wersji bazy kodu i czasami jest wymagane cofni\u0119cie si\u0119 w czasie i przywr\u00f3cenie starszych wersji plik\u00f3w. Git mo\u017ce cofn\u0105\u0107 zmiany w pojedynczym pliku lub folderze, a tak\u017ce wycofa\u0107 kompletne zatwierdzenia lub zresetowa\u0107 ca\u0142e repozytorium.<\/p>\n<h2>Wyb\u00f3r mi\u0119dzy przywracaniem a resetowaniem<\/h2>\n<p>Kiedy \u201ecofasz\u201d zatwierdzenie, Git zwykle stosuje nowe zatwierdzenie z odwrotnymi modyfikacjami, zasadniczo je anuluj\u0105c. Jest to przydatne, je\u015bli pope\u0142nisz b\u0142\u0105d i musisz \u201eusun\u0105\u0107\u201d zatwierdzenie, nawet je\u015bli pozostaje ono w historii.<\/p>\n<p>Procedura resetowania repozytorium jest nieco inna. Mo\u017cesz wycofa\u0107 tylko jeden zatwierdzenie na raz, ale je\u015bli uruchomisz reset git, Git ca\u0142kowicie zresetuje repozytorium do momentu utworzenia tego zatwierdzenia. Dzieje si\u0119 tak z r\u00f3\u017cnych powod\u00f3w, z kt\u00f3rych najcz\u0119stsze to usuwanie zatwierdze\u0144 lub poprawianie historii ga\u0142\u0119zi.<\/p>\n<p>Obie te procedury maj\u0105 wp\u0142yw na ca\u0142e repozytorium, ale identyczne polecenia mog\u0105 by\u0107 u\u017cyte do uzyskania tych samych efekt\u00f3w na poszczeg\u00f3lnych plikach lub folderach. Na przyk\u0142ad wykonanie git reset na pojedynczym <a href=\"https:\/\/navhow.com\/how-to-create-a-playable-dvd-from-any-video-file\/\">plik przywr\u00f3ci go do stanu, w jakim by\u0142 w momencie tworzenia zatwierdzenia<\/a>. Jest to korzystne, je\u015bli chcesz po prostu wybra\u0107 starsz\u0105 wersj\u0119 pliku z historii Git.<\/p>\n<h2>Badanie starych wersji Git<\/h2>\n<p>Niskotechnologiczne podej\u015bcie do przywracania pliku do jego pierwotnego stanu jest raczej proste \u2014 Github i wi\u0119kszo\u015b\u0107 innych serwer\u00f3w Git \u015bledzi histori\u0119 plik\u00f3w i mo\u017cesz po prostu klikn\u0105\u0107 zatwierdzenie i wybra\u0107 \u201ePrzegl\u0105daj pliki\u201d, aby zobaczy\u0107 migawk\u0119 swojego repozytorium z przesz\u0142o\u015bci. Mo\u017cesz wtedy albo <a href=\"https:\/\/navhow.com\/how-to-locate-downloaded-files-on-a-chromebook\/\">pobierz plik<\/a> lub skopiuj tekst.<\/p>\n<p><img fetchpriority=\"high\" decoding=\"async\" class=\"alignnone size-full wp-image-5292\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_744.png\" alt=\"\" width=\"1004\" height=\"218\" srcset=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_744.png 1004w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_744-768x167.png 768w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_744-18x4.png 18w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_744-585x127.png 585w\" sizes=\"(max-width: 1004px) 100vw, 1004px\" \/><\/p>\n<p>Jest to szczeg\u00f3lnie przydatne, je\u015bli pracujesz z du\u017c\u0105 liczb\u0105 plik\u00f3w kodu i chcesz por\u00f3wna\u0107 wcze\u015bniejsze wersje napisanych przez siebie procedur. W tym scenariuszu prawdopodobnie nie chcesz odwr\u00f3ci\u0107 ca\u0142ej rzeczy, tylko jedn\u0105 funkcj\u0119. Bez dotykania Git CLI, mo\u017cesz skopiowa\u0107 kod z tej funkcji.<\/p>\n<h2>Przywracanie pliku Git do starej wersji<\/h2>\n<p>Dokonali\u015bmy zatwierdzenia w tym repozytorium testowym, kt\u00f3re zmieni\u0142o README i doda\u0142o nowy plik. Chcemy cofn\u0105\u0107 modyfikacje README, ale nie chcemy przywraca\u0107 ca\u0142ego repozytorium do pierwszego zatwierdzenia.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-5293\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_743-1.png\" alt=\"\" width=\"808\" height=\"330\" srcset=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_743-1.png 808w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_743-1-768x314.png 768w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_743-1-18x7.png 18w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_743-1-585x239.png 585w\" sizes=\"(max-width: 808px) 100vw, 808px\" \/><\/p>\n<p>Odpowiedzi\u0105 jest zresetowanie samego pliku README poprzez pobranie starszej wersji tego pliku. Polecenie checkout w Git mo\u017ce wykonywa\u0107 r\u00f3\u017cne rzeczy, takie jak prze\u0142\u0105czanie ga\u0142\u0119zi, chocia\u017c cz\u0119sto jest u\u017cywane do pobierania danych na podstawie zatwierdzenia lub identyfikatora ga\u0142\u0119zi.<\/p>\n<p>Aby przywr\u00f3ci\u0107 plik do wcze\u015bniejszej wersji, znajd\u017a identyfikator zatwierdzenia, z kt\u00f3rego chcesz go przywr\u00f3ci\u0107. Mo\u017cesz u\u017cy\u0107 git log z pojedynczym plikiem w zakresie, aby zobaczy\u0107 tylko zmiany wprowadzone w tym pliku:<\/p>\n<pre>git log README.md<\/pre>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-5294\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_745.png\" alt=\"\" width=\"600\" height=\"251\" srcset=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_745.png 600w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_745-18x8.png 18w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_745-585x245.png 585w\" sizes=\"(max-width: 600px) 100vw, 600px\" \/><\/p>\n<p>Skopiuj identyfikator zatwierdzenia, a nast\u0119pnie uruchom git checkout z identyfikatorem i \u015bcie\u017ck\u0105 pliku:<\/p>\n<pre>git kasa 22710694b25d7ce5297559851beb7d3e4de811bb README.md<\/pre>\n<p>To zmieni plik z powrotem, ale nie zatwierdzi jeszcze zmian. Mo\u017cesz wprowadza\u0107 zmiany i zatwierdza\u0107, kiedy b\u0119dziesz gotowy.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5295\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_746.png\" alt=\"\" width=\"927\" height=\"317\" srcset=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_746.png 927w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_746-768x263.png 768w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_746-18x6.png 18w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_746-585x200.png 585w\" sizes=\"(max-width: 927px) 100vw, 927px\" \/><\/p>\n<div class=\"future_hybrid_paragraph\">\n<div id=\"bordeaux-static-slot-11\" class=\"bordeaux-slot bordeaux-filled-slot\" data-feat-ref=\"bordeaux-feat-id-106\">\n<div id=\"skip-to-div-bordeaux-static-slot-11\" class=\"sr-only\"><\/div>\n<\/div>\n<\/div>\n<p>W tym przypadku git checkout oznaczy\u0142 modyfikacje jako gotowe do nast\u0119pnego zatwierdzenia. Je\u015bli nie chcesz zatwierdza\u0107 modyfikacji, mo\u017cesz to zrobi\u0107. Mo\u017ce to by\u0107 przydatne do tymczasowego pobierania starszych wersji plik\u00f3w bez korzystania z Github.<\/p>\n<h2>Przywracanie zmian w poszczeg\u00f3lnych plikach<\/h2>\n<p>Podobnie mo\u017cesz u\u017cy\u0107 git revert, aby cofn\u0105\u0107 modyfikacje wprowadzone w jednym zatwierdzeniu. Nie ma mo\u017cliwo\u015bci zastosowania go do pojedynczego pliku, jednak je\u015bli zatwierdzenie wp\u0142ywa na inne pliki, po prostu odrzu\u0107 modyfikacje.<\/p>\n<p>U\u017cyj prze\u0142\u0105cznika \u2014no-commit, aby w\u0142\u0105czy\u0107 modyfikacj\u0119 \u201erevert commit\u201d, kt\u00f3r\u0105 Git generuje automatycznie.<\/p>\n<pre>git odwr\u00f3\u0107 de8564b131ca6a15a7e7c73f5ef156b119cc0b93<\/pre>\n<p>Pozwala to na wprowadzenie zmian w plikach przed zako\u0144czeniem cofania. Je\u015bli s\u0105 jakie\u015b niepo\u017c\u0105dane zmiany, kt\u00f3re zosta\u0142y wprowadzone, mo\u017cesz je usun\u0105\u0107 za pomoc\u0105 klienta lub pustej kasy git.<\/p>\n<pre>git checkout -- plik<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-5296\" src=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_747.png\" alt=\"\" width=\"968\" height=\"288\" srcset=\"https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_747.png 968w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_747-768x228.png 768w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_747-18x5.png 18w, https:\/\/navhow.com\/wp-content\/uploads\/2022\/08\/Screenshot_747-585x174.png 585w\" sizes=\"(max-width: 968px) 100vw, 968px\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>Wprowadzenie Git jest doskona\u0142ym narz\u0119dziem do utrzymywania ka\u017cdej wersji Twojego kodu i czasami jest wymagane, aby przej\u015b\u0107\u2026<\/p>","protected":false},"author":1,"featured_media":5291,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-5290","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-study"],"_links":{"self":[{"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/posts\/5290","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/comments?post=5290"}],"version-history":[{"count":2,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/posts\/5290\/revisions"}],"predecessor-version":[{"id":5298,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/posts\/5290\/revisions\/5298"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/media\/5291"}],"wp:attachment":[{"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/media?parent=5290"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/categories?post=5290"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/navhow.com\/pl\/wp-json\/wp\/v2\/tags?post=5290"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}