Ответ 1
Вы можете ограничить глубину истории, пока cloning:
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
Используйте это, если хотите ограниченную историю, но все же некоторые.
В настоящее время у меня есть приватный репозиторий github, который я хочу публиковать. Однако некоторые из первоначальных коммитов содержат информацию, которую я не хочу публиковать (жестко запрограммированные скрипты и т.д.).
Каков самый простой способ сделать последнюю фиксацию открытой (мне действительно не нужны или нужны предыдущие коммиты в публичном репозитории) без включения какой-либо или всей истории фиксации?
Вы можете ограничить глубину истории, пока cloning:
--depth <depth>
Create a shallow clone with a history truncated to the specified
number of revisions.
Используйте это, если хотите ограниченную историю, но все же некоторые.
Используйте следующую команду:
git clone --depth <depth> -b <branch> <repo_url>
Где:
depth
- сумма, которую вы хотите включить. то есть, если вы просто хотите, чтобы последняя фиксация использовала git clone --depth 1
branch
- это имя удаленной ветки, из которой вы хотите клонировать. т.е. если вы хотите, чтобы последние 3 фиксации из master
использовали ветку git clone --depth 3 -b master
repo_url
- это URL вашего репозитория#!/bin/bash
set -e
# Settings
user=xxx
pass=xxx
dir=xxx
repo_src=xxx
repo_trg=xxx
src_branch=xxx
repo_base_url=https://$user:[email protected]/$user
repo_src_url=$repo_base_url/$repo_src.git
repo_trg_url=$repo_base_url/$repo_trg.git
echo "Clone Source..."
git clone --depth 1 -b $src_branch $repo_src_url $dir
echo "CD"
cd ./$dir
echo "Remove GIT"
rm -rf .git
echo "Init GIT"
git init
git add .
git commit -m "Initial Commit"
git remote add origin $repo_trg_url
echo "Push..."
git push -u origin master
Удаление папки .git
вероятно, является самым простым путем, поскольку вам не нужна/нужна история (как сказал Стефан).
Таким образом, вы можете создать новое репо из своей последней фиксации: (Как клонировать проект seed/kick-start без всей истории?)
git clone <git_url>
затем удалить .git
, а затем запустить
git init
Или если вы хотите повторно использовать свое текущее репо: Сделать текущую фиксацию единственной (начальной) фиксацией в репозитории Git?
Выполните следующие шаги:
git add .
git commit -m "Initial commit"
Нажмите на свое репо.
git remote add origin <github-uri>
git push -u --force origin master