Вы не можете выбрать более 25 тем
Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
437 строки
16 KiB
Plaintext
437 строки
16 KiB
Plaintext
Отчет по лабораторной работе № 2 "Система контроля версий Git"
|
|
|
|
Выполнил: Баранов Э. К.
|
|
Группа: А-01-23
|
|
Проверил:
|
|
|
|
Примечание: работа выполнялась на Windows.
|
|
|
|
1. Создал на рабочем столе каталог lab02 и запустил в нем Git Bash, приглашение:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
|
|
2. Просмотрел файлы в рабочем каталоге можно командой "ls" --- пусто:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ ls
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$
|
|
|
|
|
|
3. Создал каталоги Алисы и Боба, создал каталог "project",
|
|
изучил команду "cd" в процессе:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ mkdir alice
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ mkdir bob
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice
|
|
$ mkdir project
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice
|
|
$ cd ..
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ cd project
|
|
bash: cd: project: No such file or directory
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ cd alice project
|
|
bash: cd: too many arguments
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02
|
|
$ cd alice
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice
|
|
$ cd project
|
|
|
|
|
|
|
|
4. Инициализировал репозитарий:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project
|
|
$ git init
|
|
Initialized empty Git repository in C:/Users/lenov/Desktop/lab02/alice/project/.git/
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git branch -m master
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (master)
|
|
$ git branch -m main
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
У меня имя ветки по умолчанию настроено, как 'main', поэтому подсказки никакой не вылезло.
|
|
Но я хотел изучить команду для смены имени ветки, поэтому сменил ее на 'master', а потом обратно на 'main'
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ ls -A
|
|
.git/
|
|
|
|
С помощью команды 'ls -A' я увидел католог .git
|
|
|
|
5. Настроил репозитарий Алисы,чтобы коммиты были от ее имени :
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.name 'Alice (BaranovEK)'
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git config user.email 'BaranovEK@mail.ru'
|
|
|
|
6. В CodeBlocks создал проект в репозитории Алисы со следущем конечным путем:
|
|
C:\Users\lenov\Desktop\lab02\alice\project\project.cbp
|
|
|
|
7. Вернувшись в Git Bash, просмотрел состояние рабочей копии, добавил файл в отслеживаемые Git-ом, выполнил коммит:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main - мы находимся на ветке main
|
|
|
|
No commits yet - коммитов еще не было
|
|
|
|
Untracked files: - перечислен перечень не отслеживемых Git-ом файлов
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
main.cpp
|
|
obj/
|
|
project.cbp
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)-
|
|
Нобходимости в коммите нет(ничего не изменилось/добавилось),
|
|
но присутствуют неотслеживаемые файлы (используйте "git add" для отслеживания)
|
|
|
|
|
|
Добавил файл main.cpp в индекс, то есть в набор изменений, который войдет в очередной коммит:
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
Просмотрел сосотояние рабочей копии:
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main - мы находимся на ветке main
|
|
|
|
No commits yet - коммитов еще не было
|
|
|
|
Changes to be committed: - Изменения(добавление файла в отслеживание), которые необходимо закоммититьж
|
|
(use "git rm --cached <file>..." to unstage)
|
|
new file: main.cpp
|
|
|
|
Untracked files: - перечислен перечень не отслеживемых Git-ом файлов
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.cbp
|
|
|
|
Выполнил коммит с файлом main.cpp и коротким сообщением:
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'code: заготовка программы'
|
|
[main (root-commit) 01a4a8f] code: заготовка программы
|
|
1 file changed, 9 insertions(+)
|
|
create mode 100644 main.cpp
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$
|
|
|
|
8 добавил еще однин файл в индеккс и сделал коммит с ним.
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add project.cbp
|
|
warning: in the working copy of 'project.cbp', LF will be replaced by CRLF the next time Git touches it
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m 'build: добавлен файл проекта'
|
|
[main a5895dd] build: добавлен файл проекта
|
|
1 file changed, 40 insertions(+)
|
|
create mode 100644 project.cbp
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Changes not staged for commit: git отлеживает и хранит эти файлы.
|
|
Сейчас эти файлы изменены, но git не будет сохранять эти изменения при фиксации.
|
|
(use "git add <file>..." to update what will be committed)
|
|
(use "git restore <file>..." to discard changes in working directory)
|
|
modified: main.cpp
|
|
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
bin/
|
|
obj/
|
|
project.layout
|
|
|
|
no changes added to commit (use "git add" and/or "git commit -a")
|
|
|
|
9 сделал коммиты тремя разными способами
|
|
|
|
1-ый способ Сначала выбрать файлы, изменения которых должны войти в коммит, затем сделать коммит:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
git commit -m "..."
|
|
[main aea20f6] ...
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
Я забыл прописать сообщение, поэтому пришлось удалить последний коммит(без удаления изменений в файле)
|
|
и закоммитить заново
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset HEAD~ #
|
|
Unstaged changes after reset:
|
|
M main.cpp
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m "code: добавлен вывод суммы"
|
|
[main 889d2b0] code: добавлен вывод суммы
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
Потом я понял, что вывод суммы не нужно было добавлять в коммит,
|
|
поэтому я опять удалил последний коммит, но уже вместе с изменениями. И закоммитил все как положено.
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git reset --hard HEAD~
|
|
HEAD is now at a5895dd build: добавлен файл проекта
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add main.cpp
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m"code: добавлен ввод чисел"
|
|
[main beefe63] code: добавлен ввод чисел
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
2-ой способ Добавить в индекс все изменения, затем сделать коммит:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add -u
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m"code: добавлен вывод суммы"
|
|
[main 1ab08b5] code: добавлен вывод суммы
|
|
1 file changed, 1 insertion(+)
|
|
|
|
3-ий способ Добавить все изменения в индекс и сделать коммит в один шаг:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -a -m"code: добавлен вывод суммы"
|
|
[main 6dfd17a] code: добавлен вывод суммы
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
В сообщение допущена ошибка, поэтому я изменил сообщение коммита:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit --amend
|
|
hint: Waiting for your editor to close the file... unix2dos: converting file C:/Users/lenov/Desktop/lab02/alice/project/.git/COMMIT_EDITMSG to DOS format...
|
|
dos2unix: converting file C:/Users/lenov/Desktop/lab02/alice/project/.git/COMMIT_EDITMSG to Unix format...
|
|
[main 88dc5ff] code: добавлен вывод разности
|
|
Date: Mon Apr 1 12:44:27 2024 +0300
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
9 занес в список игнорируемых каталоги bin и obj и файлы *.layout. Убедился, что это удалось.
|
|
Создал коммит с .gitignore
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
Untracked files:
|
|
(use "git add <file>..." to include in what will be committed)
|
|
.gitignore
|
|
|
|
nothing added to commit but untracked files present (use "git add" to track)
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git add .gitignore
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git commit -m"git: закоммичен .gitignore"
|
|
[main 49ddca5] git: закоммичен .gitignore
|
|
1 file changed, 3 insertions(+)
|
|
create mode 100644 .gitignore
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git status
|
|
On branch main
|
|
nothing to commit, working tree clean
|
|
|
|
10 Работа с журналом репозитория:
|
|
|
|
попробовал каждую из приведенных команд:
|
|
git log
|
|
git log --stat
|
|
git log --oneline --decorate
|
|
git log --oneline --decorate --all --graph
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --stat
|
|
commit 49ddca58e5e7c4948ca75195e919ec2e1dbc8d60 (HEAD -> main) - указан id коммита и показано,что ссылка направлена на данный коммит из ветки main
|
|
Author: Alice (BaranovEK) <BaranovEK@mail.ru>
|
|
Date: Mon Apr 1 12:58:00 2024 +0300
|
|
|
|
git: закоммичен .gitignore
|
|
|
|
.gitignore | 3 +++
|
|
1 file changed, 3 insertions(+) - указан файл который изменили в этом коммите, а также число добавленных строк(3 insertions(+))
|
|
|
|
.....
|
|
|
|
Нашел сначала коммиты по теме build, затем коммиты, затрагивающие project.cbp:
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log --grep "build:"
|
|
commit a5895ddd03a5b83b7a675aac252237effb6768f0
|
|
Author: Alice (BaranovEK) <BaranovEK@mail.ru>
|
|
Date: Mon Apr 1 11:48:08 2024 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git log -- project.cbp
|
|
commit a5895ddd03a5b83b7a675aac252237effb6768f0
|
|
Author: Alice (BaranovEK) <BaranovEK@mail.ru>
|
|
Date: Mon Apr 1 11:48:08 2024 +0300
|
|
|
|
build: добавлен файл проекта
|
|
|
|
10 Просмотр коммитов
|
|
|
|
просморел предпоследний коммит тремя разными способами(результат выписал единожды)
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git show main~1
|
|
commit 88dc5ff98c2f62369b37b50ee5e204af70247ea9
|
|
Author: Alice (BaranovEK) <BaranovEK@mail.ru>
|
|
Date: Mon Apr 1 12:44:27 2024 +0300
|
|
|
|
code: добавлен вывод разности
|
|
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 6de6dd2..5371b30 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -7,6 +7,7 @@ int main()
|
|
cout << "Enter A and B: ";
|
|
int a, b;
|
|
cin >> a >> b;
|
|
- cout << "A + B = " << a + b << '\n';
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
return 0;
|
|
}
|
|
|
|
11 Просмотр изменений
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index 5371b30..d323e9d 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -8,6 +8,7 @@ int main()
|
|
int a, b;
|
|
cin >> a >> b;
|
|
cout << "A + B = " << a + b << '\n' - до этой строки включительно указаны совпадающие строки
|
|
- << "A - B = " << a - b << '\n'; - тут строка которую поменяли(git считает,что удалили)
|
|
+ << "A - B = " << a - b << '\n'-*
|
|
+ << "A*B=" << a*b << '\n';-*= тут строки которые добавили
|
|
return 0;
|
|
}
|
|
|
|
12
|
|
Просмотрите изменения между самым первым коммитом и коммитом, добавляющим вывод разности.
|
|
|
|
|
|
lenov@LAPTOP-4D9QBHOE MINGW64 ~/Desktop/lab02/alice/project (main)
|
|
$ git diff 01a4a8f 88dc5ff
|
|
diff --git a/main.cpp b/main.cpp
|
|
index b4392ec..5371b30 100644
|
|
--- a/main.cpp
|
|
+++ b/main.cpp
|
|
@@ -4,6 +4,10 @@ using namespace std;
|
|
|
|
int main()
|
|
{
|
|
- cout << "Hello world!" << endl;
|
|
+ cout << "Enter A and B: ";
|
|
+ int a, b;
|
|
+ cin >> a >> b;
|
|
+ cout << "A + B = " << a + b << '\n'
|
|
+ << "A - B = " << a - b << '\n';
|
|
return 0;
|
|
}
|
|
diff --git a/project.cbp b/project.cbp
|
|
new file mode 100644
|
|
index 0000000..99bb702
|
|
--- /dev/null
|
|
+++ b/project.cbp
|
|
@@ -0,0 +1,40 @@
|
|
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
|
|
+<CodeBlocks_project_file>
|
|
+ <FileVersion major="1" minor="6" />
|
|
+ <Project>
|
|
+ <Option title="project" />
|
|
+ <Option pch_mode="2" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Build>
|
|
+ <Target title="Debug">
|
|
+ <Option output="bin/Debug/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Debug/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-g" />
|
|
+ </Compiler>
|
|
+ </Target>
|
|
+ <Target title="Release">
|
|
+ <Option output="bin/Release/project" prefix_auto="1" extension_auto="1" />
|
|
+ <Option object_output="obj/Release/" />
|
|
+ <Option type="1" />
|
|
+ <Option compiler="gcc" />
|
|
+ <Compiler>
|
|
+ <Add option="-O2" />
|
|
+ </Compiler>
|
|
+ <Linker>
|
|
+ <Add option="-s" />
|
|
+ </Linker>
|
|
+ </Target>
|
|
+ </Build>
|
|
+ <Compiler>
|
|
+ <Add option="-Wall" />
|
|
+ <Add option="-fexceptions" />
|
|
+ </Compiler>
|
|
+ <Unit filename="main.cpp" />
|
|
+ <Extensions>
|
|
+ <lib_finder disable_auto="1" />
|
|
+ </Extensions>
|
|
+ </Project>
|
|
+</CodeBlocks_project_file>
|
|
(END)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|