If it's stupid but works, it isn't stupid.
https://geekbrains.ru/records/942
Системы контроля версий
Программа SmartGit http://www.syntevo.com/smartgit/
Команды
discard удалить все неотправленные в репозиторий изменения
revert откатить коммит
reset удалить все коммиты
удалить ветку
git branch -d имя_ветки
git branch -D имя_ветки
объединение веток
merge изменений из главной ветки во вторичную(все изменения из мастера в другой ветке) (кликаем на ветку мастер)
merge вторичной ветки в главную(все изменения из другой ветки попадают в мастер) (кликаем на вторичную ветку)
правила работы с git
1. все новые изменения начинаются в новой ветке
2. файлы exe, bin добавляются в игнор (добавлять в игнор до первого коммита)
3. делать небольшие коммиты
4. для каждого отдельного изменения делать отдельный коммит
в логе команда cherry-pick подтянуть отдельный коммит из другой ветки
git log лог изменений
git branch проверить, в какой ветке находимся
git branch -a все ветки, в том числе и удалённые
git branch имя_ветки создать новую ветку
git checkout имя_ветки сменить ветку
git push origin имя_ветки отправить изменения в ветку
слияние
git checkout master переходим в ветку master
git branch -a проверяем, что находимся в правильной ветке
git merge имя_ветки_в_которую_сливаем_изменения merge
git push origin push в удаленный репозиторий
git branch -d имя_ветки удаляем локальную ветку
Мини-конспект
git branch -a - показать все ветки
git branch love - создать ветку love
git checkout love - переключиться в ветку love
git push origin love - отправить ветку love в удалённый репозиторий
git merge love (сначала переключиться на мастер git checkout master) - слить ветку love с master
git branch -d love - удалить ветку love из локального репозитория
git push origin --delete love - удалить ветку love из удалённого репозитория
git push origin - сделать push, так как локальные изменения в master`е мы в удалённый ещё не отправляли
Мини-конспект.
1. Разработку лучше вести не в ветке master, а в другой ветке, например, develop, новые функции программы ветвить от develop, тестить и фиксить в develop, и только когда код отлажен до какой-то стабильной версии программы, сливать изменения в master.
2. При этом удобно добавить тэг с номером версии и изменениями что допилили в этой версии (release notes).
3. По тэгу легко найти нужную версию в логе, и можно по этому коммиту (вообще можно по любому коммиту) воссоздать в отдельной ветке состояние программы в этой версии.
Команда checkout скопирует любой снимок из репозитория в рабочий каталог.
История изменений
git log
git log --pretty=oneline
Данные
git config user.name
git config user.email
git config --list
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
Алиасы
https://githowto.com/ru/aliases
Отмена изменений в рабочем каталоге
git checkout hello.html
git status
cat hello.html
— откат изменений в рабочем каталоге к состоянию в репозитории
команда reset сбрасывает буферную зону, но не изменяет рабочий каталог
git reset HEAD hello.html
(очищает буферную зону от изменений, которые мы только что проиндексировали, но (по умолчанию) не изменяет рабочий каталог.
чтобы сбросить изменения в рабочем каталоге, можно использовать команду git checkout имя_файла
отмена коммита
git revert HEAD
git revert HEAD --no-edit (автоматически создаст комментарий к коммиту-реверту)
HEAD — отмена последнего коммита
с хэш-значением - отменить любой коммит
удалить коммит целиком
команда reset
git reset --hard v1
v1 - тег, до которого мы сбрасываем коммиты в ветке (или хэш-значение)
Параметр --hard указывает на то, что рабочий каталог должен быть тоже сброшен (обновлен в соответствии с новым head ветки)
внесение изменений в коммит
git add hello.html
git commit --amend -m "Add an author/email comment"
Системы контроля версий
- Git
- SVN
- Mercurial
Программа SmartGit http://www.syntevo.com/smartgit/
Команды
discard удалить все неотправленные в репозиторий изменения
revert откатить коммит
reset удалить все коммиты
удалить ветку
git branch -d имя_ветки
git branch -D имя_ветки
объединение веток
merge изменений из главной ветки во вторичную(все изменения из мастера в другой ветке) (кликаем на ветку мастер)
merge вторичной ветки в главную(все изменения из другой ветки попадают в мастер) (кликаем на вторичную ветку)
правила работы с git
1. все новые изменения начинаются в новой ветке
2. файлы exe, bin добавляются в игнор (добавлять в игнор до первого коммита)
3. делать небольшие коммиты
4. для каждого отдельного изменения делать отдельный коммит
в логе команда cherry-pick подтянуть отдельный коммит из другой ветки
git log лог изменений
git branch проверить, в какой ветке находимся
git branch -a все ветки, в том числе и удалённые
git branch имя_ветки создать новую ветку
git checkout имя_ветки сменить ветку
git push origin имя_ветки отправить изменения в ветку
слияние
git checkout master переходим в ветку master
git branch -a проверяем, что находимся в правильной ветке
git merge имя_ветки_в_которую_сливаем_изменения merge
git push origin push в удаленный репозиторий
git branch -d имя_ветки удаляем локальную ветку
Мини-конспект
git branch -a - показать все ветки
git branch love - создать ветку love
git checkout love - переключиться в ветку love
git push origin love - отправить ветку love в удалённый репозиторий
git merge love (сначала переключиться на мастер git checkout master) - слить ветку love с master
git branch -d love - удалить ветку love из локального репозитория
git push origin --delete love - удалить ветку love из удалённого репозитория
git push origin - сделать push, так как локальные изменения в master`е мы в удалённый ещё не отправляли
Мини-конспект.
1. Разработку лучше вести не в ветке master, а в другой ветке, например, develop, новые функции программы ветвить от develop, тестить и фиксить в develop, и только когда код отлажен до какой-то стабильной версии программы, сливать изменения в master.
2. При этом удобно добавить тэг с номером версии и изменениями что допилили в этой версии (release notes).
3. По тэгу легко найти нужную версию в логе, и можно по этому коммиту (вообще можно по любому коммиту) воссоздать в отдельной ветке состояние программы в этой версии.
Команда checkout скопирует любой снимок из репозитория в рабочий каталог.
История изменений
git log
git log --pretty=oneline
Данные
git config user.name
git config user.email
git config --list
git log --pretty=format:"%h %ad | %s%d [%an]" --graph --date=short
Алиасы
https://githowto.com/ru/aliases
Отмена изменений в рабочем каталоге
git checkout hello.html
git status
cat hello.html
— откат изменений в рабочем каталоге к состоянию в репозитории
команда reset сбрасывает буферную зону, но не изменяет рабочий каталог
git reset HEAD hello.html
(очищает буферную зону от изменений, которые мы только что проиндексировали, но (по умолчанию) не изменяет рабочий каталог.
чтобы сбросить изменения в рабочем каталоге, можно использовать команду git checkout имя_файла
отмена коммита
git revert HEAD
git revert HEAD --no-edit (автоматически создаст комментарий к коммиту-реверту)
HEAD — отмена последнего коммита
с хэш-значением - отменить любой коммит
удалить коммит целиком
команда reset
git reset --hard v1
v1 - тег, до которого мы сбрасываем коммиты в ветке (или хэш-значение)
Параметр --hard указывает на то, что рабочий каталог должен быть тоже сброшен (обновлен в соответствии с новым head ветки)
внесение изменений в коммит
git add hello.html
git commit --amend -m "Add an author/email comment"