Git, вероятно, сохранил больше рабочих мест для разработчиков, чем любая другая технология. Если вы часто сохраняете свою работу с помощью Git, вы всегда сможете вернуться к тому, как был ваш код в прошлом, тем самым обращая вспять те поздние ошибки.

При этом интерфейс командной строки Git, как известно, сложно освоить. Давайте рассмотрим 7 советов, как максимально эффективно использовать Git.

Обычно 70% использования Git - это только add, commit, branch и push / pull. Большинству людей знаком поток, который всегда движется в одном направлении. Вы когда-нибудь задумывались, как вернуться или отменить шаги, если вы добавили неправильные файлы в репо или сделали фиксацию с неправильным сообщением в неправильную ветку?

Если вы один из тех, кто следует тому, что показано в комиксе выше, то этот список хаков Git для вас.

1. Отредактируйте неверное сообщение о фиксации

Сообщение о фиксации будет жить в вашей базе кода очень долго, поэтому вы определенно хотите, чтобы это было что-то, что правильно определяет изменения.

Эта команда позволит вам отредактировать самое последнее сообщение фиксации. Вы должны убедиться, что в рабочей копии нет изменений, иначе они тоже могут быть зафиксированы.

$ git commit --amend -m ”YOUR-NEW-COMMIT-MESSAGE”

Если вы уже отправили свою фиксацию в удаленную ветку, вам нужно принудительно отправить фиксацию с помощью этой команды:

$ git push <remote> <branch> --force

Вы можете следить за этим ответом на переполнение стека для получения дополнительной информации.

2. Отмените "git add" перед фиксацией

Что, если вы добавили неправильные файлы в промежуточную область, но не сделали фиксации? Вы можете отменить это с помощью простой команды. Если нужно удалить только один файл:

$ git reset <filename>

или если вы хотите отключить все незафиксированные изменения:

$ git reset

Вы можете следить за этим ответом на переполнение стека для получения дополнительной информации.

3. Отменить самую последнюю фиксацию

Иногда вы случайно зафиксировали не те файлы или вообще что-то пропустили. Вот трехэтапный процесс, который поможет вам в таких случаях.

$ git reset --soft HEAD~1
# make changes to your working files as necessary
$ git add -A .
$ git commit -c ORIG_HEAD

Когда вы выполняете первую команду, Git переместит ваш указатель HEAD обратно на фиксацию, которую вы сделали перед ее выполнением, чтобы вы могли перемещать файлы или вносить изменения по мере необходимости.

Затем вы добавляете все свои изменения, и когда вы, наконец, выполняете последнюю команду, Git откроет ваш текстовый редактор по умолчанию с тем же сообщением о фиксации. Вы можете отредактировать это сообщение, если хотите, или вы можете полностью переопределить этот шаг, используя «-C» вместо «-c» в последней команде.

4. Верните репозиторий g it к предыдущей фиксации

«Возврат» может иметь много смысла во многих случаях, особенно если вы полностью испортили часть кода. Самый распространенный случай - это когда вы хотите вернуться в прошлое и изучить предыдущее состояние своей кодовой базы, а затем вернуться к своему текущему состоянию. Это можно сделать:

$ git checkout <SHA>

‹SHA›‘ - это первые 8–10 символов хеш-кода коммита, в который вы хотите перейти.

Он отсоединит ГОЛОВУ и позволит вам дурачиться, не извлекая ветку. Не волнуйтесь - оторвать голову не так страшно, как кажется. Если вы хотите совершать коммиты, пока находитесь здесь, вы можете сделать это, создав здесь новую ветку:

$ git checkout -b <SHA>

Чтобы вернуться в текущее состояние, просто перейдите в ветку, в которой вы были ранее.

Вы можете следить за этим ответом на переполнение стека для получения дополнительной информации.

5. Отменить слияние Git

Возможно, вам придется выполнить полный сброс предыдущей фиксации, чтобы отменить слияние. По сути, «слияние» сбрасывает индекс и обновляет файлы в рабочем дереве, которые различаются между ‹commit› и HEAD, но сохраняет те, которые различаются между индекс и рабочее дерево (т.е. в котором есть изменения, которые не были добавлены).

$ git checkout -b <SHA>

Но всегда есть альтернативные способы делать что-то в Git, и вы можете изучить их здесь.

6. Удалить локальные (неотслеживаемые) файлы из текущей ветки Git

Допустим, у вас есть много файлов, которые не отслеживаются (потому что они не требуются), и вы не хотите, чтобы они отображались каждый раз, когда вы используете git status. Вот несколько способов обойти эту проблему:

$ git clean -f -n         # 1
$ git clean -f            # 2
$ git clean -fd           # 3
$ git clean -fX           # 4
$ git clean -fx           # 5

(1): опция -n сообщит вам, какие файлы будут удалены, если вы запустите (2).

(2): Это приведет к удалению всех файлов, о которых сообщает command- (1).

(3): -d, если вы также хотите удалить каталоги.

(4): -X, если вы просто хотите удалить игнорируемые файлы.

(5): -x, если вы хотите удалить как игнорируемые, так и не игнорируемые файлы.

Обратите внимание на различие регистра X в последних двух командах.

Для получения дополнительной информации вы можете изучить официальную документацию по git-clean.

7. Удалите ветку Git как локально, так и удаленно

Чтобы удалить локальную ветку:

$ git branch --delete --force <branchName>
# OR use -D as a short-hand:
$ git branch -D

Чтобы удалить удаленную ветку:

$ git push origin --delete <branchName>

Добейтесь успеха с Git

Ознакомьтесь с официальной учебной документацией GitHub, чтобы получить быстрый справочник, и официальной документацией Git, чтобы узнать больше о Git.

Если у вас есть любимый взлом Git, опубликуйте его в комментариях и расскажите, как вы его используете.

Первоначально опубликовано на blog.projectshrv.com 11 ноября 2015 г.