반응형
역사없이 git repo를 복사하십시오.
현재 github에 공개하려는 개인 저장소가 있습니다. 그러나 초기 커밋 중 일부에는 공개하고 싶지 않은 정보 (하드 코딩 된 자격 증명 등)가 포함되어 있습니다.
커밋 히스토리의 일부 또는 전부를 포함하지 않고 최신 커밋을 퍼블릭으로 만드는 가장 쉬운 방법은 무엇입니까?
복제 하는 동안 히스토리의 깊이를 제한 할 수 있습니다 .
--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
복제하려는 원격 지점의 이름입니다. 즉,master
분기 사용 에서 마지막 3 개의 커밋을 원할 경우git clone --depth 3 -b master
repo_url
당신의 저장소의 URL입니다
.git
폴더를 삭제하는 것은 기록을 원하지 않거나 필요로하지 않기 때문에 가장 쉬운 경로 일 것입니다 (Stephan이 말했듯이).
따라서 최근 커밋에서 새 저장소를 만들 수 있습니다. ( 전체 히스토리없이 시드 / 킥 스타트 프로젝트를 복제하는 방법? )
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
#!/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:$pass@bitbucket.org/$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
참고 URL : https://stackoverflow.com/questions/29368837/copy-a-git-repo-without-history
반응형
'IT' 카테고리의 다른 글
파이썬은 첫 글자 만 대문자 (0) | 2020.06.03 |
---|---|
키 / 값 자바 스크립트 객체의 키를 얻는 가장 좋은 방법 (0) | 2020.06.03 |
“java.net.BindException : 이미 사용중인 주소 : JVM_Bind”오류를 어떻게 해결합니까? (0) | 2020.06.03 |
Java에서 선행 0을 유지하면서 바이트 배열을 16 진수 문자열로 변환하는 방법은 무엇입니까? (0) | 2020.06.03 |
android TextView : 배경색을 동적으로 설정하면 작동하지 않습니다. (0) | 2020.06.03 |