Olej писал(а): ↑13 янв 2021, 08:41
И создаём 1-ю ветку:
Дальше я хочу добавить, в корень проекта, Makefile для рекурсивной сборки всего, что находится в дочерних каталогах C++11 и C++17 - такого примерног содержания:
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ pwd
/home/olej/2021_WORK/OWN_TEST.codes/make_file_group
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ cat Makefile
SUBDIRS = $(shell find . -maxdepth 1 -mindepth 1 -type d -printf "%f\n")
all clean :
@list='$(SUBDIRS)'; for subdir in $$list; do \
echo "=============== making $@ in $$subdir ================="; \
(cd $$subdir && make $@) \
done
После чего обнаруживаю, что он, естественно, не находится под контролем:
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git status -s
?? Makefile
Добавляю в индексируемую область:
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git add Makefile
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git status -s
A Makefile
Но commit буду уже в новой ветке:
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git checkout -b v2
Переключено на новую ветку «v2»
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git commit
[v2 35f9c8c] генерация файлов из списка со случайной длиной
1 file changed, 7 insertions(+)
create mode 100644 Makefile
Вот теперь ветки нашего репозитория (на любую из которых я могу всегда переключиться):
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git branch
master
* v2
И вся история ведения репозитория:
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git log
commit 35f9c8cb0329b5b5288a57a2fc58a676a36a2705 (HEAD -> v2)
Author: oleg.tsiliuric <oleg.tsiliuric@zodiacsystems.com>
Date: Wed Jan 13 07:52:50 2021 +0200
генерация файлов из списка со случайной длиной
commit 24f0065d2f38aa480038371aa4e0110ff2de9125 (master)
Author: oleg.tsiliuric <oleg.tsiliuric@zodiacsystems.com>
Date: Tue Jan 12 20:14:25 2021 +0200
генерация файлов из списка со случайной длиной
Насколько далеко разъехалась текущая ветка от исходной master: одна строчка - один commit
Код: Выделить всё
olej@nvidia:~/2021_WORK/OWN_TEST.codes/make_file_group$ git cherry master
+ 35f9c8cb0329b5b5288a57a2fc58a676a36a2705
Вот, собственно, и всё!
Теперь мне не нужно хранить какие-то промежуточные копии, опасаясь потери полезных вариантов ... операциями подобными показанным выше я решаю все эти проблемы на будущее: создаю любые ответвления и всегда возвращусь к любому из них.