Destio небольшой блог

Git

Git, вложенные репозитарии без submodules

Если Гит увидит в папке папку .git, то он игнорирует и папку, и все что в ней. Для работы с вложенными репозитариями предполагается использовать submodules. Это не самая простая вещь, и иногда просто хочется, чтобы папка была сразу и во вложенном репозитарии, и в большом, внешнем, без возни с подмодулями. Примерно то же можно сказать […]

Читать дальше

Git, отмена изменений

Откатить измененный файл к последнему коммиту git checkout filename Откатить коммиты Сначала надо достать список коммитов и их id. Часто хватает git log –pretty=oneline -4 Потом резет на нужный коммит git reset –hard commit-id

Читать дальше

Git, прочее

Список последних 10 коммитов, с датами, названиями и авторами: git log –pretty=format:”%h%x09%an%x09%ar%x09%s” -10 Только названия коммитов: git log –oneline -10 Удалить все удаленные файлы (git add . не удаляет): git add -u Посмотреть отличия между unstaged файлами и последним коммитом: git diff Посмотреть отличия между staged файлами и последним коммитом: git diff –cached Посмотреть последний […]

Читать дальше

Git, переключать ветки без коммита (Stash)

Если просто переключить ветки посреди работы, то все измененные файлы перенесутся в новую ветку (а если изменения конфликтуют, то и не переключится ничего). Это немного неудобно и мешает. И это отличный повод начать использовать git stash. Пример: мы работаем в ветке branchName, наизменяли файлы (но коммитить еще рано), и нам надо быстренько что-то исправить в […]

Читать дальше

Git, работа с удаленными репозиториями

Добавить удаленный репозиторий Посмотреть список удаленных репозиториев: git remote -v Добавить обычный репозиторий: Я не помню как. Добавить репозиторий с GitHub: git remote add origin git+ssh://git@github.com/userName/repositoryName.git Заменить репозиторий: git remote set-url origin git+ssh://git@github.com/userName/repositoryName.git Узнать, отличается ли локальная ветка от удаленной Чтобы git status показывал состояние с учетом удаленного репозитория, нужно сделать git fetch. Это заставит […]

Читать дальше

Git, работа с ветками

Как обычно, мне надоело гуглить каждый раз, когда я что-то забываю, поэтому запишу-ка я себе в одно место. Это сообщение про ветки. Посмотреть список веток: git branch *будет отмечена текущая Создать ветку с именем branchName: git branch branchName Перейти на ветку branchName: git checkout branchName (перед этим лучше коммитнуть изменения, или сложить в stash) Переименовать […]

Читать дальше