Не смотря на то, что в интернете километр статей о Гите, я потратил кучу времени, чтобы найти информацию о совершенно базовых операциях, ради которых многие и решают использовать Гит.
---
git checkout 767f9f1
767f9f1 - идентификатор коммита, можно взять на Битбакете.
После отката у вас перестанет работать команда git pull, потому что Гит не знает, какую ветку теперь пулить. Лучше всего сперва вернуться обратно к последнему коммиту, а потом делать пул.
---
git checkout master
Для крутых программистов стоит отметить, что семантика чекаутов немного шире и глубже, но для простоты объяснения я вот так вот пишу.
---
git add . git commit -m "Best commit"
---
git checkout protected/file.php
---
Чаще всего в индекс добавляется даже не файл, а папка с файлами, которую забыли прописать в эксклуды. Если такое случилось, то для начала надо:
а) Добавить-таки в эксклуды ненавистную папку.
б) Удалить из индекса все эти файлы (сами они автоматически оттуда не пропадут, не смотря на то, что многие такое ожидают).
git rm protected/file.php
Опасность в том, что эта команда не только удаляет файл из индекса, но и удаляет сам файл на сервере.
---
git rm --cached protected/file.php
---
К сожалению, удалось найти только труднозапоминаемое решение, которое бы позволяло волшебно удалить все файлы в статусе deleted.
git status | sed -n '/^# *deleted:/s///p' | xargs git rm
Либо надо убирать по одному файлику (см. пункт 5). Есть ещё вариант: удалять из индекса можно файлы по максе, например:
git rm protected/\*.php
Но если все файлы в разных папках, то придётся всё-таки по одному.
Когда нет времени разбираться с этой проблемой, следует выполнить коммит с ключом --no-verify
.
git commit -m "Commit" --no-verify
Вот такая вот магия:
git reset --hard && git status --porcelain -uall | egrep '^\?\?' | awk '{ print $2; }' | xargs rm
Комментарии (0)