Skip to content

Instantly share code, notes, and snippets.

View JustATestName144's full-sized avatar

Viacheslav Kyrychenko JustATestName144

  • Donetsk
View GitHub Profile
@JustATestName144
JustATestName144 / gist:72ff5c7d08cc2921c84b5c82a7b676c7
Created February 13, 2018 08:01
Git. Push branch to remote.
git push -u origin <branch>
@JustATestName144
JustATestName144 / gist:422e3273d551205524231889445c5fd5
Created January 30, 2018 06:07
Git. Create a global .gitignore. You can also create a global .gitignore file, which is a list of rules for ignoring files in every Git repository on your computer. For example, you might create the file at ~/.gitignore_global and add some rules to it.
Create a global .gitignore
@JustATestName144
JustATestName144 / Git. Remove cached file.
Created January 30, 2018 06:06
If you already have a file checked in, and you want to ignore it, Git will not ignore the file if you add a rule later. In those cases, you must untrack the file first, by running the following command in your terminal:
git rm --cached FILENAME
@JustATestName144
JustATestName144 / gist:877285d72b4ceca0cae968b8e8caf496
Created January 16, 2018 13:42
Git. Checkout remote branch which doesn't exist in a local repository.
git fetch origin
git checkout --track origin/<remote_branch_name>
git reset . - for all files.
git reset filename for a single file.
git tag v1 - Add tag v1.
git tag - see all tags.
@JustATestName144
JustATestName144 / gist:c0f42a49403d804923ae0414d0bed537
Created January 10, 2018 09:20
Git. Мягкая отмена коммитов.
Пример команды: git revert -n
Это очень удобная команда на тот случай, если вам нужно откатить последние пару коммитов, покопаться в изменениях и найти проблемное место.
Обычный git revert автоматически закоммитит те изменения, которые откатили, запросив у вас примечание к новому коммиту отката. Флаг "-n" говорит гиту, чтобы тот не переживал по поводу срочного коммита новых изменений, ведь мы хотим просто посмотреть на них.
Сброс позволяет откатиться на определённую версию в истории изменений Git. Всего есть три вида сброса:
git reset --hard {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита пропадут.
git reset {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита, получат состояние «Not staged for commit». Чтобы вернуть их обратно, нужно использовать команды git add и git commit.
git reset --soft {{some-commit-hash}} — вернуться на определённый коммит в истории. Все изменения, сделанные после этого коммита, получат состояние «Staged for commit». Чтобы вернуть их обратно, нужно использовать команду git commit.
Поналачу эта информация может показаться бесполезной, однако, когда вы начнёте работать с разными версиями файлов, она вам очень пригодится. Например, я для себя выделил вот такие сценарии использования этих команд:
@JustATestName144
JustATestName144 / gist:aee80a240211e11a2646af3ed8ec9f06
Created January 10, 2018 09:14
Git. Merge with saving branch structure.
git merge --no-ff
Пример команды: git log --oneline --graph
Скорее всего, вам уже доводилось использовать команду git log. У неё есть много полезных параметров, которые можно комбинировать друг с другом для достижения наилучшего результата. Чаще всего я использую эти:
--author="Alex Kras" — выводит коммиты, сделанные конкретным человеком
--name-only — выводит только названия изменённых файлов
--oneline — выводит сокращённые данные коммита (в виде одной строки)
--graph — выводит дерево зависимостей для всех коммитов
--reverse — выводит коммиты в обратном хронологическом порядке (сначала старые)
--after — выводит коммиты, сделанные после определённой даты