Как правильно релизить на гитхаб?

Вот например, я залил тестовый проект, сделал три коммита и зарелизил.

К релизу прекрепилось описание только последнего коммита.
Потом я сделаю еще коммиты с релзами. Раумеется, релизить буду не после каждого коммита. Или надо после каждого? :thinking: Потом я захочу скачать и посмотреть исходники какой-нибудь старой версии и, допустим, скомпилировать её (не меняя код). Как это сделать?

Перейти к этому коммиту например по тегу.
В веб-интерфейсе гитхаба это делается нажатием на тег. GitHub - BlackMightyRavenDark/TestProject1 at 1.0.0-test

Можно даже менять ) Точнее не саму эту версию/коммит (так тоже можно, но не желательно, разве что случайно оставил там какую-то секретную инфу и т.д.), а создать там ветку, например, 1.0.x, и добавить новые коммиты туда, зарелезить эту ветку как 1.0.1. Так делают если надо выпустить исправления к старой версии, когда новая (1.1 или 2.0) еще в разработке, или если кто-то хочет продолжить сидеть на 1.х потому что в 2.х например убрали поддержку чего-нибудь или всё сильно поменяли.

И там source code (zip) будет содержать исходники нужной версии?

На странице релиза — да. Зеленая кнопка сверху — хз.
Локально конечно можно получить исходники на момент любого коммита.

А если между релизами было сделано несколько коммитов, почему к релизу прикрепляется только последний? Какой в этом смысл? :thinking:

А как узнать, после какого коммита был сделан релиз и какой версии?

В смысле “прикрепляется”? Последний, и все до него )
Релиз же просто указывает на каком коммите был релиз. И для удобства создает тег.

От клиента зависит, обычно теги отображаются как-нибудь в GUI, например, как тут на скринах Best Git Client for Windows, Mac, Linux | GitKraken, в консольном тоже видно в git log и т.д.

Снимок
Я делал два коммита, а тут только последний. И если нажать на tags там тоже по одному коммиту в каждом тэге.

То есть, локально никак?

Не видно . Тут только вот:


RAIN@MIKROSHA MINGW64 ~/source/repos/TestProject1 (master)
$ git log
commit 7131022d14132603faa4252915a5a0715b9cd771 (HEAD -> master,
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:33:25 2021 +0700

    Добавлен метод Decremental()

commit d932f363f5e840c0ec73dd7029bf1e38fd335bc4
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:29:28 2021 +0700

    Изменён метод Factorials()

commit ed4a4dce0fde40878a405fc30fe56b0efeae099c
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:51:00 2021 +0700

    Добавил метод Incremental()

commit d14c1239a9969f54e14a6dd9bfc3e1427e8d7fb8
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:29:36 2021 +0700

    Добавил генерацию случайных чисел
:...skipping...
commit 7131022d14132603faa4252915a5a0715b9cd771 (HEAD -> master,
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:33:25 2021 +0700

    Добавлен метод Decremental()

commit d932f363f5e840c0ec73dd7029bf1e38fd335bc4
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:29:28 2021 +0700

    Изменён метод Factorials()

commit ed4a4dce0fde40878a405fc30fe56b0efeae099c
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:51:00 2021 +0700

    Добавил метод Incremental()

commit d14c1239a9969f54e14a6dd9bfc3e1427e8d7fb8
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:29:36 2021 +0700

    Добавил генерацию случайных чисел

commit dc82d37103de810c0bc8db20900bb5c018a6531e
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:15:50 2021 +0700

    Улучшил метод Factorials()

commit 41f304e1f18b9266572348ab15f501a2742299a2
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 13:10:55 2021 +0700

    Добавил метод Factorials()

commit 1a770d5bf42aaa37af92b194e5f57addce112a36
Author: RAIN <RAIN@MIKROSHA>
Date:   Mon Aug 16 11:30:55 2021 +0700

    Добавлены GITIGNORE- и GITATTRIBUTES-файлы.
~
~
~

и что значит “skipping”? :thinking:

Коммиты в дереве находятся. Можно например перейти к родителю.

Можно посмотреть что поменялось между тегами или просто любыми коммитами (по их хешу или его началу, типа 7131022. Кстати, по табу можно автодополнять, по крайней мере на линуксе: написал git log 1.0.0, нажал TAB, и оно допишет -test. Если нажать после 1., то дополнит до 1.0. и при повторном нажатии выведет варанты).

git log 1.0.0-test..1.0.1-test 
commit 7131022d14132603faa4252915a5a0715b9cd771 (HEAD -> master, tag: 1.0.1-test, origin/master, origin/HEAD)
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:33:25 2021 +0700

    Добавлен метод Decremental()

commit d932f363f5e840c0ec73dd7029bf1e38fd335bc4
Author: BlackRain <masaraksh86@mail.ru>
Date:   Mon Aug 16 17:29:28 2021 +0700

    Изменён метод Factorials()
git diff 1.0.0-test 1.0.1-test 
diff --git a/TestProject1/Program.cs b/TestProject1/Program.cs
index 7ee68a8..124c4ab 100644
--- a/TestProject1/Program.cs
+++ b/TestProject1/Program.cs
@@ -24,6 +24,16 @@ namespace TestProject1
             Console.WriteLine(Environment.NewLine);
         }
 
+
+        private static void Decremental(int max)
+        {
+            for (int i = max; i >= 0; i--)
+            {
+                Console.Write($"{i} ");
+            }
+            Console.WriteLine(Environment.NewLine);
+        }
+        
         private static void Factorials(int max)
         {
             if (max > 50)
@@ -31,7 +41,7 @@ namespace TestProject1
                 max = 50;
             }
             long n = 1;
-            for (int i = 1; i <= max; i++)
+            for (int i = 1; i <= max; i += 2)
             {
                 Console.Write($"{n *= i} ");
             }
@@ -43,6 +53,7 @@ namespace TestProject1
             Factorials(40);
             RandomSequence(40, 100);
             Incremental(200);
+            Decremental(200);
             Console.ReadLine();
         }
     }

Может быть надо git pull или git fetch --tags.
После просто git clone ...... всё есть.

Может это место, где кончилось место на экране и был скролл?)

У меня нет этого на линуксе.

А какой смысл выводить в тэгах и под релизом только последний (некликабельный) коммит?
Снимок
Это похоже на комментарий, но я его не писал.

Это, вроде, в винде ещё хз когда было. Можно сказать, стандартный функционал консоли. Но работает только с файлами/папками из текущей директории, если вы об этом. А с гитом, наверное, не прокатит. Но консоль гита это не консоль винды, вроде. Это отдельный ехе-шник. Так что, тоже должно, наверное :man_shrugging:
p.s. Нет, нифига :grin:

Да, чот даже в ConEmu + Clink нет (
Но в Git Bash говорят должен быть. Can I setup auto-complete for git on Windows via cmd.exe? - Stack Overflow

Если при создании релиза не написать описание, то оно сгенерирует что-то такое.
Если написать, то так: Releases · chrisant996/clink · GitHub


а тут зачем?

Тег привязан к коммиту, так что вот и показывает что было в том коммите.

Показывать все коммиты между тегами тут не особо вариант, теги могут использоваться не только для релизов. Хотя гитхаб наверно мог бы быть достаточно умным, чтоб это разобрать )

Понятно. Значит, это нормально.
А если я залил проект через студию, а потом удалил на сайте (потому что подумал, что опять что-то не так сделал). Как теперь его снова залить?

Что именно? Если весь репозиторий, то создать новый )

На сайте или в вижуалке?

Если весь репозиторий удален кнопкой в его настройках на сайте, то на сайте.
Ну и потом если имя нового другое, то в студии где-то поменять адрес репозитория (часто называется origin).

Я нигде не вижу таких настроек. Там есть только создание нового репозитория.
Я, кстати, использую встроенный гит, а не плагин.

Наверно тут в Remotes. Или тут.

Там нет ничего похожего на настройки

а на что менять-то? :thinking: А, понял. Сейчас попробую.

ещё вопрос.
А если мне, вдруг, приспичит написать один и тот же проект на разных языках. Ничего серьёзного, а просто какая-нибудь банальщина, типа hello-world-C# hello-world-java hello-world-cpp или где шарик туда-сюда будет бегать.
Как тогда разделять такие одинаковые проекты?