Skip to content
forked from tp-labs/lab02

Изучение систем контроля версий на примере Git

License

Notifications You must be signed in to change notification settings

hijadelaluuna/lab02

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Laboratory work II

Данная лабораторная работа посвещена изучению систем контроля версий на примере Git.

$ open https://git-scm.com

Tasks

  • 1. Создать публичный репозиторий с названием lab02 и с лиценцией MIT
  • 2. Сгенирировать токен для доступа к сервису GitHub с правами repo
  • 3. Ознакомиться со ссылками учебного материала
  • 4. Выполнить инструкцию учебного материала
  • 5. Составить отчет и отправить ссылку личным сообщением в Slack

Tutorial

Начало работы в рабочем каталоге 'workspace и активация исполняемых файлов.

$ export GITHUB_USERNAME=hijadelaluuna $ export GITHUB_EMAIL=[email protected] $ export GITHUB_TOKEN= ca176118fade0e937d053401373c810b53f466f8 $ alias edit=nano

Создание директории ~/.config и файлa 'hub.

$ cd $hijadelaluuna/workspace # Переход в рабочую директорию. $ source scripts/activate # Выполнение команд из файла

Создание каталога для хранения локальной копии удаленного репозитория.

$ mkdir ~/.config # Создание директории ~/.config

$ cat > ~/.config/hub <<EOF github.com:

  • user: $hijadelaluuna oauth_token: $ca176118fade0e937d053401373c810b53f466f8 protocol: https EOF $ git config --global hub.protocol https

Создание каталога для хранения локальной копии удаленного репозитория.

$ mkdir projects/lab02 && cd projects/lab02 $ git init # Инициализация репозитория. $ git config --global user.name $hijadelaluuna $ git config --global user.email $[email protected]

check your git global settings

$ git config -e --global [user] email = [email protected] name = hijadelaluuna [hub] protocol = https

Подключение локального репозитория к удаленному серверу

$ git remote add origin https://github.com/$hijadelaluuna/lab02.git $ git remote -v # Список удаленных репозиториев, настроенных в данный момент origin https://github.com/hijadelaluuna/lab02.git (fetch) origin https://github.com/hijadelaluuna/lab02.git (push) $ git pull origin master # Объединение изменений, присутствующих в удаленном репозитории, в локальный рабочий каталог From https://github.com/hijadelaluuna/lab02

  • branch master -> FETCH_HEAD
  • [new branch] master -> origin/master Already up to date. $ touch README.md # Установка времени последнего изменения файла $ git status # Список измененных файлов On branch master nothing to commit, working tree clean $ git add README.md # Добавление файлов в индекс $ git commit -m"added README.md" # Коммит изменений в файлах проекта On branch master nothing to commit, working tree clean $ git push origin master # Помещение изменений в главную ветку удаленного хранилища, связанного с рабочим каталогом Everything up-to-date

Добавить на сервисе GitHub в репозитории lab02 файл .gitignore со следующем содержимом:

build/ install/ *.swp .idea/

Работа с репозиторием (пулл изменений из удаленного репозитория и просмотр истории коммитов).

$ git pull origin master # Объединение изменений, присутствующих в удаленном репозитории, в локальный рабочий каталог $ git log # Список коммитов за все время существования репозитория.

Создание директорий в рабочем каталоге и заголовочного файла print.cpp в локальном репозитории.

$ mkdir sources $ mkdir include $ mkdir examples $ cat > sources/print.cpp <<EOF # Создание файла с расширением .hpp #include <print.hpp>

void print(const std::string& text, std::ostream& out) { out << text; }

void print(const std::string& text, std::ofstream& out) { out << text; } EOF

Создание и запись в заголовочный файл print.hpp

$ cat > include/print.hpp <<EOF #include #include #include

void print(const std::string& text, std::ofstream& out); void print(const std::string& text, std::ostream& out = std::cout); EOF

Создание и запись в исполняемый файл example1.cpp

$ cat > examples/example1.cpp <<EOF #include <print.hpp>

int main(int argc, char** argv) { print("hello"); } EOF

Создание и запись в файл example2.cpp

$ cat > examples/example2.cpp <<EOF #include <print.hpp>

#include

int main(int argc, char** argv) { std::ofstream file("log.txt"); print(std::string("hello"), file); } EOF

Редактирование файла в локальной копии репозитория.

$ edit README.md

$ git status # Cписок измененных файлов $ git add # Добавления текущего каталога в индекс. $ git commit -m"added sources" $ git push origin master

Report

$ cd ~/workspace/labs/ $ export LAB_NUMBER=02 $ git clone https://github.com/tp-labs/lab$hijadelaluuna.git tasks/lab$lab02 $ mkdir reports/lab$lab02 $ cp tasks/lab$lab02/README.md reports/lab$lab02/REPORT.md $ cd reports/lab$lab02 $ edit REPORT.md $ gistup -m "lab02"

About

Изучение систем контроля версий на примере Git

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%