Перейти к содержимому

Git и контроль версий

Тема: Git и контроль версий.

Сопровождающее видео

  • git репозиторий
  • staging area (git add)
  • commit, commit hash, commit log (commit history)
  • branch
  • checkout
  • remote
  • Папка .git
  • Файл .gitignore
  • git config vs git 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 идет всегда относительно текущего состояния ветки, а не изначального).