Alice (DmitrievDK) 2 лет назад
Родитель cf88595709
Сommit 833d6d67a3

@ -0,0 +1,269 @@
ls - посмотреть файлы в каталоге
mkdir <<>> - добавить папку с именем
cd <<>> - перейти по каталогу на уровень ниже в папку
cd .. - перейти по каталогу на уровень выше
git init - инициализация репозитория
git branch -m main - смена имени ветки на main
ls -A - посмотреть скрытое в папке
Git имеет три вида настроек:
Системные (для всех пользователей),
Пользовательские (для одного пользователя),
Локальные (для отдельного репозитария)
git config user.name 'Alice (DmitrievDK)' выбор имени
git config user.email 'DmitriyevDK@mpei.ru' выбор почты
git status - посмотреть состояние рабочей копии
-------------
On branch main - смотрим ветку main
No commits yet - еще нет коммитов
Untracked files: - неотслеживаемые файлы
(use "git add <file>..." to include in what will be committed) - используйте "git add <file>...", чтобы указать, что будет зафиксировано
desktop.ini
main.cpp
project.cbp
nothing added to commit but untracked files present (use "git add" to track)
------------
git add main.cpp - добавляем main.cpp в индекс, то есть в набор изменений, который войдет в очередной коммит
------------
$ git status
On branch main
No commits yet
Changes to be committed: - файлы под гитом
(use "git rm --cached <file>..." to unstage)
new file: main.cpp
Untracked files:
(use "git add <file>..." to include in what will be committed)
desktop.ini
project.cbp
-----------
code: заготовка программы — изменен код (а не документация, например)
build: update CMake version — коммит относится к сборке
обрабатывает пустой массив | fixes #1234 — исправляет ошибку № 1234
timer: учет високосных лет #4321 — доработка таймера по задаче № 4321
WIP: (work in progress). (который временный/незаконченный)
правила описания коммитов
несколько способов коммита
1. когда один файл
git add main.cpp
git commit -m "..."
2. когда много файлов
git add -u
git commit -m "..."
3. Добавить все изменения в индекс и сделать коммит в один шаг:
git commit -a -m "..."
git log - показать журнал репозитария
------
У команды git log много опций, например:
git log --stat показывает файлы, измененные в коммитах.
git log --oneline --decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate).
git log --oneline --decorate --all --graph делает то же для всех веток (--all), причем коммиты отображаются в терминале в виде дерева (--graph).
------
------
git log --stat показывает файлы, измененные в коммитах.
$ git log --stat
commit 4bfae3cbed75c9d1f51c862ce160500708cc0606 (HEAD -> main)
Author: Alice (DmitrievDK) <DmitriyevDK@mpei.ru>
Date: Mon Jun 5 03:24:31 2023 +0300
git
.gitignore | 3 +++
1 file changed, 3 insertions(+)
commit debe61dfd67eca86a15387c7b35c83d24f62edf8
Author: Alice (DmitrievDK) <DmitriyevDK@mpei.ru>
Date: Mon Jun 5 03:16:43 2023 +0300
code: изменена сумма и разность на нормальны
main.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
commit 92474770044a065395b4e6ca5f3ee7dcc808cec9
Author: Alice (DmitrievDK) <DmitriyevDK@mpei.ru>
Date: Mon Jun 5 03:15:04 2023 +0300
code: добавлена разность
------
------
git log --oneline --decorate показывает коммиты компактно (--oneline), а также показывает ссылки, концы веток и тэги (--decorate
$ git log --oneline --decorate
4bfae3c (HEAD -> main) git
debe61d code: изменена сумма и разность на нормальны
9247477 code: добавлена разность
f5b62a4 code: заготовка программы — изменен код
a5f4d8f build: добавлен файл проекта
3b3f82e code: заготовка программы
------
------
$ git log --oneline --decorate --all --graph
* 4bfae3c (HEAD -> main) git
* debe61d code: изменена сумма и разность на нормальны
* 9247477 code: добавлена разность
* f5b62a4 code: заготовка программы — изменен код
* a5f4d8f build: добавлен файл проекта
* 3b3f82e code: заготовка программы
------
git show <refspec> просмотр отдельного коммита (refspec - хеш коммита)
просмотр последнего коммита тремя разными способами
git show HEAD (текущий)
git show main (по имени ветви)
git show d2e8af (по хэшу нужного коммита)
------
$ git show HEAD
commit 4bfae3cbed75c9d1f51c862ce160500708cc0606 (HEAD -> main)
Author: Alice (DmitrievDK) <DmitriyevDK@mpei.ru>
Date: Mon Jun 5 03:24:31 2023 +0300
git
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d85abef
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+/bin
+/obj
+/*.layout
usr@dan128B MINGW64 ~/Desktop/lab02/alice/project (main)
------
git diff - просмотр изменения рабочей копии
------
$ git diff
diff --git a/main.cpp b/main.cpp
index c3d4222..b685e5e 100644
--- a/main.cpp
+++ b/main.cpp
@@ -8,5 +8,7 @@ cout << "Enter A and B: ";
int a, b;
cin >> a >> b;
cout << "A + B = " << a + b << '\n'
- << "A - B = " << a - b << '\n'; - убрали строчку
+ << "A - B = " << a - b << '\n' -добавили строчку
+ << "A * B = " << a * b << '\n'; -добавили строчку
}
------
git diff HEAD~2 разница между последним и коммитом старее на две версии
git diff HEAD~2 HEAD также, но так можно задать разные коммиты
git reset --hard HEAD~1 - откат версии на 1 назад
git checkout HEAD -- main.cpp - откат файла к последнему коммиту
ssh-keygen создать пару ключей
eval $(ssh-agent -s) запустить агента ключей
ssh-add загрузка ключа
cat ~/.ssh/id_rsa.pub отобразить открытый ключ
мой вывод: ------
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDy3rV3tesiBvsEgT+ckOMe6usSDho/k6G8oDna/HWpMyvrGXwNq8tHAp8baMqID2fo6WVzk86iYS4NobF8Coo3oYt6LV9nCC9fvk/uavj6AIa7N3M9KEJSfei2q51/HFVr7b/5WbB0F28Tz/IHzbe655wlPkF2NWWDvaHKul6OzNmylwAnHT4L+kiwX6QMDHB+FiMCxwvLkt7avkn3h/NQiyvq3mH7pk3Hkpr5UMI3tFvWEj062nE9fo5YgNqAziHKQLp4bGXRo204AMSHBMZ6Ia/eN4GrmiHUWVvT6nnwDjnw7g5TjzT5ptMx6693apBBF3xYKurTB1E48qYf+aJAFfa06yaHcYEz1LmjpG4kBC12s2IIAZbiR3jk5OEo/7zSkVryZt+R+523zefnzNblwFWFgDrYOt/2e7urXObh+1Wr0bRLaahWyxsTT+ADJ5Eyk0XpUBK/9mG6db+B/0QQ6UFcv3f7KaAH/hF3hi7sRS7J+2cGmOtiGhEGqhbpqY0= usr@dan128B
------
git clone <адрес> <каталог>
git remote -v
git remote add
git push отправить коммит на сервер
git fetch получить коммит с сервера
------
$ git rebase origin/main
Auto-merging main.cpp - автообъединение main.cpp
CONFLICT (content): Merge conflict in main.cpp - конфликт слияния в main.cpp
error: could not apply 9303f0f... code: добавили минимум - ошибка не удалось применить
hint: Resolve all conflicts manually, mark them as resolved with - решите конфлик вручную
hint: "git add/rm <conflicted_files>", then run "git rebase --continue". - потом пометить их как разрешенные
hint: You can instead skip this commit: run "git rebase --skip". - вместо этого пропустить этот коммит
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 9303f0f... code: добавили минимум
------
после git add main.cpp / git rebase --continue
------
code: добавили минимум
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
#
# interactive rebase in progress; onto 4d82c00
# Last command done (1 command done):
# pick 9303f0f code: добавили минимум
# No commands remaining.
# You are currently rebasing branch 'main' on '4d82c00'.
#
# Changes to be committed:
# modified: main.cpp
#
# Untracked files:
# project.layout
#
~
~
~
~
~
.git/COMMIT_EDITMSG [unix] (06:30 05/06/2023) 17,1 All
"~/Desktop/lab02/bob/project/.git/COMMIT_EDITMSG" [unix] 17L, 491B
------
git branch double - создание ветки
git checkout double - переключение на ветку
git checkout -b double (первые две команды вместе)
git merge double - слить ветку double в main
------
$ git merge double
Already up to date. (что-то пошло не так)
------
------
------
------
------
------
------
------
------
------
------
------
------
------
Загрузка…
Отмена
Сохранить