С одним git-репозиторием нет. Что вы можете сделать, это использовать подмодули git , которые позволяют вам «комбинировать» репозитории. Сохраните ваш публичный код на github, создайте еще один, частный, git-репозиторий для вашего личного кода, который ссылается на публичный код как подмодуль. Изменения, сделанные в общедоступном подмодуле, могут быть переданы в github, а изменения в github могут быть перенесены обратно, но изменения вне подмодуля не будут представлены общедоступному сообществу. Несмотря на то, что деревья кода будут объединены в один корень, вам придется независимо управлять коммитами, подталкиваниями и извлечениями между отдельными модулями, что многие люди считают громоздким и проблематичным, поэтому вам следует поэкспериментировать с рабочим процессом, прежде чем распространять его широко.