-
Notifications
You must be signed in to change notification settings - Fork 0
GIT
GIT - это система организации совместного доступа и контроля версий к файлам проекта.
Контроль версий означает, что в репозитории (на сервере) будут храниться все версии программы, которые вы туда отправляли. При желании их можно будет сравнивать, восстанавливать, объединять в случае ошибок.
Совместный доступ означает, что несколько человек (а в случае крупных компаний и сотни человек), одновременно пишущих большой проект, будут иметь доступ к общей версии исходников программы: смогут независимо друг-от-друга их редактировать, отправлять их на сервер и быть в курсе всех, даже самых последних изменений. В случае возникновения конфликтующих изменений (2 человека одновременно внесли изменения в один и тот же файл, к примеру), система контроля версий поможет их разрешить.
Подробнее о всем этом можно почитать в множестве руководств на просторах интернета, а пока что необходимо научиться базовой работе с GIT.
Как и принято в Windows, программу можно установить методом "далее-далее-я принимаю условия лицензионного соглашения-готово".
Скачайте программу GIT для Windows отсюда.
Скачайте программу для графического просмотра изменений в версиях файла отсюда
Скачайте графический интерфейс для работы с GIT отсюда.
Запустите Git Extensions. Если вы сделали все правильно, то увидите такое окно:
Как несложно догадаться, для начала необходимо заполнить единственный красный пункт, а именно свое имя и email. Там же необходимо оставить значение по-умолчанию о том, конец строки необходимо забирать в стиле windows, а отправлять в стиле linux, а также установить кодировку файлов в utf-8. Это необходимо для того, чтобы облегчить жизнь и вам, и менторам.
После этого можно смело нажать ОК и перед вами откроется основное окно Git Extensions. В этом окне необходимо выбрать пункт клонировать репозиторий и перед вами откроется окно настройки репозитория.
В поле репозиторий необходимо вписать 'https://code.google.com/p/mipt-ilab-course/'. В поле назначение необходимо вписать адрес папки, в которую будет клонирован ваш репозиторий, т.е. внутри которой будет создан каталог для вашей работы. Не рекомендуется указывать там Рабочий стол. В поле ветвь необходимо выбрать students-develop. Обратите внимание на то, что, если вы правильно выполнили предыдущие пункты, то вам будет предложен список ветвей, которые возможно выбрать. Теперь жмем клонировать и ждем успешного клонирования. В процессе клонирования с Вас могут потребовать имя пользователя и пароль. Имя пользователя - это ваш гугл-аккаунт. ВНИМАНИЕ!, пароль пользователя - это не пароль от вашего google-аккаунта. Свой пароль для репозитория Вы должны взять отсюда.
Теперь все подготовительные стадии закончены и Вы можете приступить к выполнению домашнего задания.
Ура! Приступаем к работе! Итак, необходимо перейти в Вашу папку репозитория. Да, пока что ее нету, но скоро появиться персональная папка для каждого студента, в которую и только в которую у него будет доступ. А пока мы трудимся изо всех сил, чтобы эти папки поскорее появились, допустим, что эти папки существуют. Для начала необходимо написать хоть какую-то программу и сохранить ее исходный код в собственной папке. После этого прямо в проводнике необходимо щелкнуть правой кнопкой мыши по файлу и в контекстном меню выбрать 'git extensions->add file'.
С помощью аналогичных пунктов контекстного меню можно смотреть текущие изменения файла с момента последней версии, посмотреть историю изменений файла, а также сделать еще много полезных вещей. Но сейчас самое главное - отправка изменений на сервер.
Перед тем как отправлять что-либо на сервер необходимо забрать из репозитория последнюю версию своих файлов. Ведь в то время, пока вы редактировали код, ваш ментор мог его изменить, оставив в нем свои комментарии. Для этого необходимо все в том же контекстном меню выбрать пункт 'git extensions->Pull'. Перед Вами откроется меню параметров pull, где Вам предложат 3 варианта действий в случае конфликтующих изменений. Попробуйте разобраться, чем же они отличаются друг-от-друга и выбрать наиболее подходящий.
Перед отправкой своих файлов/изменений на сервер, необходимо сначала внести эти файлы/изменения в локальный репозиторий у себя на компьютере. Для этого все в том же контекстном меню выбираем 'GitEx commit'. Перед Вами откроется меню коммита, где можно будет наглядно посмотреть все изменения, которые вы внесли в репозиторий. На скриншоте я добавил новый файл main.cpp, а также одну строчку в файл test.cpp. Каждый коммит должен сопровождаться комментарием, сообщающий о том, что же было сделано с момента предыдущего коммита. Его необходимо вписать в правом нижнем углу окна.
.
После этого можно нажать кнопку 'Commit'. После нескольких подобных коммитов приходит пора отправить свои изменения на сервер, поделившись ими с ментором. Для этого все в том же контекстном меню выберете пункт 'GitExt->Push'. Если до этого у Вас еще не спрашивали логин и пароль, то теперь-то его точно спросят. Ура! Ваша программа попала на сервер и теперь ментор сможет ее проверить.
Если вы используете линукс, то наверняка понимаете, насколько же неудобны сложные графические интерфейсы, усложняющие простые вещи.
Также, если Вы пользуетесь линуксом, то я считаю, что вы сможете понять, как адаптировать написанное ниже и не предназначенное для студентов 1 курса для сдачи заданий в репозиторий mipt-ilab-course. Безусловно, для этого Вам придется прочитать инструкцию для пользователей Windows. При возникновении вопросов - пишите. В случае необходимости вики будет дополнена.
First you should set your username and email:
$ git config --global user.name "Name Surname"
$ git config --global user.email [email protected]
If you will be asked for password you should use password from here, NOT from your google account!
And to your notice you may customise git as you want
The main git command is
$ git help <verb>
Now you may clone our repository.
$ git clone https://[email protected]/p/galaxy-expansion/
Next you should switch to develop branch (few moments later about branches)
$ git checkout develop
Create branch for your feature
$ git branch new_feature
Code a lot, add and delete files and, of course, commit to your personal branch using svn-like syntax:
$ git add file_or_folder
$ git rm file_or_folder
$ git commit -m "bla-bla-bla, it's historical commit"
When your feature is ready you should
- switch to develop branch (I hope, you remember how to do this;))
- merge your branch with develop (don't forget about --no-ff, it's needed to save history)
$ git merge --no-ff new_feature
- solve conflicts if needed (intuitively answer the questions)
- delete your new_future branch and don't panic, it's already in history
$ git branch -d new_feature
- and send it to the main repository
$ git push develop
Note, before pushing develop branch you should send your code for reviewing (see the code review wiki page).
That's all that you need to start:)
Of course, you may use local new-feature sub-branches but be careful! It's easy to lost your control. You may push your local branches to the main repo without merging for reviewing. And here you may read more about branching. This web-page is our main branching convention. Picture above is amazing illustration. branching.png
- Mentors
- UsingGitOnWindows
-
GIT
- GitStatus
- GitBranches
- WorkingWithIssues
- HOWTO_create_new_test
- CommentStyle
- CodeReview
- Testing
- CodeStyle
- CompilersIDEs
- WindowsCmd
- WikiImages
- LinksAndResources
- FAQ