Git и контроль версий
Тема: Git и контроль версий.
Концепты
Заголовок раздела «Концепты»- git репозиторий
- staging area (
git add) - commit, commit hash, commit log (commit history)
- branch
- checkout
- remote
- Папка .git
- Файл .gitignore
git configvsgit config --global- rebase, merge
- PR (Pull Request)
git push,git pull
Вопросы
Заголовок раздела «Вопросы»- Как получить копию git репозитория из GitHub со всей историей на другом компьютере?
Ответ
Вы могли бы создать новый репозиторий на другом компьютере, привязать его к remote на GitHub, сделать
git pull. Еще можно сразу черезgit clone, который также сам найдет нужную основную ветку.
- Как сделать Pull Request используя git (не GitHub)?
Ответ
Никак. Понятие Pull Request не существует в git.
- Вы создали branch для фичи1, на основе основной ветки. Поработали над ней.
Теперь создали branch для фичи2, тоже на основе основной ветки. Поработали над ней.
Сделали PR и влили фича1 в основную ветку. Притянули основную ветку локально через
git pull. Как теперь правильно влить фича2 в основную ветку?
Ответ
Вы можете открыть PR напрямую из фича2 в основную ветку. Если конфликтов нет, PR сработает.Если конфликты есть, лучше всего сделать
git rebase masterбудучи на ветке фича2, разрешить конфликты локально, исправляя файлы в которых они возникли, и использую командуgit rebase --continueпосле исправления.После этого обновите ветку, сохраненную на GitHub, используя
git push --forceилиgit push --force-with-lease(--forceнужен, потому что rebase перезаписывает порядок коммитов в этой ветке). PR обновится сам, и уже не покажет конфликтов (PR идет всегда относительно текущего состояния ветки, а не изначального).