Най-често срещани грешки в Git и как да ги поправим

Снимка на Иля Павлов в Unsplash

Ако някога сте работили по голям проект с много сътрудници, тогава очевидно сте използвали Git като своя система за контрол. И когато работите с нещо толкова сложно като Git, всички правим грешки. В тази статия ще обсъдя някои много често срещани грешки, които програмистите правят, докато използват Git и как да ги разрешат. Сега, без допълнително обожание, нека започнем

Правописано последно съобщение за извършване на грешка

След няколко часа кодиране е лесно за правописна грешка да се промъкне във вашите съобщения за извършване. За щастие има просто поправяне.

git commit --amend

Това ще отвори редактора ви и ще ви позволи да направите промяна в последното съобщение за ангажиране. Никой не трябва да знае, че сте написали „Първоначално обвързване“ с три „m“ s.

Правописна грешка в името на клона

Да предположим, че е почти 15:00 и още не сте си хапвали обяда, така че в глада си сте кръстили новия си филиал - бранч. Много вкусен.

И за това има решение. Преименуваме този клон по подобен начин на това как преименуваме файл с командата mv: като го преместваме на ново място с правилното име.

git клон -m функция-brunch функция-клон

Ако вече сте натиснали този клон, са необходими няколко допълнителни стъпки. Трябва да изтрием стария клон от дистанционното и да избутаме новия:

git push origin - изтривайте функция-брънч
git push origin характеристика-клон

Случайно извърши всички промени в основния клон

Така че работите върху нова функция и в бързината си сте забравили да отворите нов клон за нея. Вече сте извършили зареждане на файлове и сега тези ангажименти седят в главния клон.

Така че можем да върнем всички тези промени в нов клон със следните три команди:

Забележка: Уверете се, че първо извършите или скриете промените си, или всички ще бъдат загубени!

git клон функция-клон
git reset HEAD ~ --hard
git checkout функция-клон

Това създава нов клон, след което връща главния клон до мястото, където е бил преди да направите промени, преди най-накрая да проверите новия си клон с всичките си предишни промени.

Забравихте да добавите файл към последния ангажимент

Друга често срещана грешка в Git се извършва твърде рано. Пропуснали сте файл, забравихте да го запишете или трябва да направите незначителна промяна за последния ангажимент, за да има смисъл. - Аманд отново е ваш приятел.

Добавете този пропуснат файл и изпълнете тази надеждна команда.

git добави пропуснато-file.txt
git commit --amend

На този етап можете или да промените съобщението за ангажиране, или просто да го запазите, за да го запазите същото.

Добавен грешен файл в репо

Но какво ще стане, ако направите точно обратното? Какво става, ако добавите файл, който не искате да извършите? Измамен ENV файл, директория за изграждане, снимка на вашето куче, което случайно сте запазили в грешна папка? Всичко е поправимо.

Ако всичко, което сте направили, е да инсталирате файла и още не сте го ангажирали, това е просто като нулиране на този поетапен файл:

git reset /assets/img/misty-and-pepper.jpg

Ако сте стигнали до извършването на тази промяна, няма нужда да се притеснявате. Просто трябва да изпълните допълнителна стъпка преди:

git reset - софтуерна Глава ~ 1
git reset /assets/img/misty-and-pepper.jpg
rm /assets/img/misty-and-pepper.jpg
git ангажимент

Това ще отмени ангажимента, ще премахне изображението и след това ще добави нов ангажимент на негово място.

Упс отново го направих

Тази команда е, когато всичко се обърка. Когато сте копирали едно твърде много решения от Stack Overflow и вашето репо е в по-лошо състояние, отколкото беше, когато стартирахте. Всички сме били там.

git reflog ви показва списък на всички неща, които сте направили. След това ви позволява да използвате магическите умения за пътуване във времето на Git, за да се върнете към която и да е точка от миналото. Трябва да отбележа, това е нещо в краен случай и не трябва да се използва леко. За да получите този списък, напишете:

git reflog

Всяка стъпка, която направихме, всеки ход, който направихме, Гит ни наблюдаваше. Изпълняването на този проект ни дава това:

3ff8691 (HEAD -> функция-клон) HEAD @ {0}: Клон: преименуван refs / heads / функция-brunch в refs / heads / характеристика-клон
3ff8691 (HEAD -> функция-клон) HEAD @ {2}: проверка: преминаване от главен към функция-brunch
2b7e508 (главен) HEAD @ {3}: нулиране: преминаване към HEAD ~
3ff8691 (HEAD -> функция-клон) HEAD @ {4}: commit: Добавя логото на клиента
2b7e508 (главно) HEAD @ {5}: нулиране: преминаване към HEAD ~ 1
37a632d HEAD @ {6}: commit: Добавя логото на клиента към проекта
2b7e508 (главно) HEAD @ {7}: нулиране: преминаване към HEAD
2b7e508 (главно) HEAD @ {8}: ангажиране (изменение): Добавена информация за допринасяне към сайта
dfa27a2 HEAD @ {9}: нулиране: преминаване към HEAD
dfa27a2 HEAD @ {10}: ангажиране (изменение): Добавена е информация за сайта
700d0b5 HEAD @ {11}: commit: Добавена информация за допринасяне към сайта
efba795 HEAD @ {12}: ангажиране (първоначално): Начален ангажимент

Обърнете внимание на най-лявата колона, тъй като това е индексът. Ако искате да се върнете до която и да е точка от историята, изпълнете командата по-долу, като замените {index} с тази препратка, напр. dfa27a2.

git нулиране HEAD @ {index}

Имате ли някои собствени съвети от Git? Уведомете ни в коментарите по-долу, бих искал да ги чуя.

Благодаря за четенето! Ако сте намерили това полезно, не забравяйте да оставите няколко хлопки . Споделете това с приятелите и последователите си! Щракнете към мен в iAnkurBiswas и ме уведомете как ви хареса тази статия!