Jak opravit chybu Git 'Vaše místní změny v následujících souborech budou přepsány sloučením'
Chybová zpráva „ Vaše místní změny v následujících souborech budou přepsány sloučením “ se objeví v mechanismu řízení verzí Git. K této chybě dochází, pokud jste upravili soubor, který má také změny ve vzdáleném úložišti.
Tato chybová zpráva je vyloučena, pokud neexistují žádné nekompletní soubory, které mají také úpravy ve vzdáleném úložišti. Při zaznamenávání této zprávy je nejlepší konzultovat ostatní členy týmu a požádat o jejich názor. Ať už chcete sloučit své místní změny nebo ponechat verzi přítomnou v úložišti, je nejlepší nechat všechny na palubě.
Co jsou úložiště? Co je to Git?
Úložiště je druh úložiště pro kód, který je neustále upravován a získáván členy týmu prostřednictvím kontrolního mechanismu verze GitHub. ' Pull' znamená, že stahujete nejnovější verzi úložiště do místního úložiště / IDE (Integrated Development Environment), jako je Pycharm atd.
Po vytažení provedete změny kódu nebo přidáte další funkce. Jakmile budete hotovi, zatlačíte kód do úložiště, aby se změny uložily a provedly se doplňky. Kód je přístupný i pro ostatní lidi.
Pokud jste novým ovládáním verzí Githubu, doporučujeme nejprve projít všemi základy. V tomto článku předpokládáme, že již máte základní znalosti a znáte všechny vstupy a výstupy.
Jak opravit „Vaše místní změny v následujících souborech budou přepsány sloučením“?
Rozlišení této chybové zprávy závisí na tom, co chcete dělat. Můžete zrušit místní změny a stáhnout je v úložišti nebo můžete uložit místní změny do skrýše a stáhnout verzi z úložiště. Vše záleží na vaší preferenci.
Doporučujeme proto, abyste se před postupováním dopředu poradili se členy svého týmu a ujistili se, že jste všichni na stejné stránce . Pokud se dopustíte nesprávného použití nebo stisknete nesprávnou verzi, může to ovlivnit celý tým.
Metoda 1: Vynucení přepsat místní změny
Pokud vám záleží na změnách provedených lokálně a chcete získat kód z úložiště, můžete vynutit tah. Tím přepíšete všechny místní změny provedené v počítači a zobrazí se duplicitní kopie verze v úložišti.
V IDE spusťte následující příkazy:
git reset - tvrdý git pull
To okamžitě zničí všechny vaše místní změny, takže se ujistěte, že víte, co děláte, a nepotřebujete místní změny.
Metoda 2: Zachování změn (místních i repo)
Pokud chcete zachovat obě změny (změny provedené lokálně a změny přítomné v úložišti), můžete změny přidat a potvrdit. Když taháte, zjevně dojde ke sloučení konfliktu. Zde můžete pomocí nástrojů v IDE (například Difftool a mergetool) porovnat dva kusy kódu a určit, které změny se mají zachovat a které odstranit. Toto je střední cesta; žádné změny nebudou ztraceny, dokud je neodstraníte ručně.
git add $ the_file_under_error git commit git pull
Když dojde ke sloučení konfliktu, pop tyto nástroje řešení konfliktů a zkontrolujte řádek po řádku.
Metoda 3: Udržování obou změn, ale není závazek
K této situaci dochází čas od času, kdy vývojáři nejsou připraveni se zavázat, protože existuje nějaký částečně poškozený kód, který ladíte. Zde můžeme bezpečně skrýt změny, vytáhnout verzi z úložiště a poté váš kód odložit.
git stash save --keep-index
nebo
git skrýš
git pull git skrýš pop
Pokud po vložení skrýše dojde ke konfliktům, měli byste je vyřešit obvyklým způsobem. Můžete také použít příkaz:
Použít git skrýš
místo popu, pokud nejste připraveni ztratit ukrytý kód kvůli konfliktům.
Pokud se sloučení nezdá být životaschopnou možností, zvažte rebase. Rebasing je proces přesunu nebo kombinování posloupnosti odevzdání novému základnímu potvrzení. V případě rebasingu změňte kód na:
git stash git pull --základ původ master git stash pop
Metoda 4: Proveďte změny v „specifických“ částech kódu
Pokud chcete provést změny v konkrétních částech kódu a nechcete nahradit vše, můžete zavázat vše, co nechcete přepsat, a poté postupujte podle metody 3. Pro změny, které chcete přepsat z verze v úložišti:
git checkout path / to / file / to / revert
nebo
git checkout HEAD ^ cesta / k / souboru / k / vrátit
Musíte se také ujistit, že soubor není uspořádán prostřednictvím:
git reset HEAD cesta / k / souboru / k / návratu
Poté pokračujte příkazem pull:
Git tah
Tím se pokusíte načíst verzi z úložiště.