전체 내역없이 시드 / 킥 스타트 프로젝트를 복제하는 방법은 무엇입니까?
--depth=1
매개 변수 를 사용 하면 프로젝트를 새 저장소로 푸시 할 수 없습니다 .
자세한 내용은 다음을 참조하십시오. Git 원격 URL 변경 후 "원격 거부 됨"(얕은 업데이트는 허용되지 않음)
당신은 할 수 있습니다
git clone <git_url>
폴더에서 .git 저장소를 삭제하십시오. 모든 기록이 삭제됩니다.
당신은 할 수 있습니다
git init
완전히 새로운 git 프로젝트가 생성됩니다.
이것은 최선의 방법이 아닐 수도 있습니다. 그러나 이것은 작동합니다. 도움이 되었기를 바랍니다.
역사의 완전한 손실이 문제가되지 않는다고 생각하는 한 Ajay가 제안한 접근 방식은 완벽하게 유효합니다. 그러나 얕은 클론의 기록을 유지하려면 다른 제안이 있습니다.
얕은 클론 은 "첫 번째"커밋의 부모를 위조하기 위해 소위 이식 지점 을 사용하여 전체 기록을 가진 척합니다 . 전체 기록을 사용할 수 있다고 가정하면 질문을 다시 표현할 수 있습니다. 특정 개정 전에 기록을 어떻게 버릴 수 있습니까?
이것은 우리가 접목 지점과 git filter-branch
(연결된 질문에서 제안 된대로) 의 조합을 사용할 수 있음을 의미 합니다. 그러나 이렇게하면 전체 기록이 다시 작성되어 처음에 복제 한 원격지와 새 기록이 호환되지 않는다는 점에 유의해야합니다. 이로 인해 저장소에서 이전 리모컨을 제거해야합니다.
git remote remove <old-remote-name>
이제 재 작성을 시작할 수 있습니다. 현재 마스터 커밋을 저장소의 새 루트 로 만들고 싶다고 가정 해 보겠습니다 .
git rev-parse --verify master >> .git/info/grafts
git filter-branch -- --all
이렇게하면 현재 마스터 커밋을 새 루트로 사용하여 저장소의 전체 기록을 다시 작성합니다. 에서 "백업"참조를 제거하여 다시 쓰기를 완료 할 수 있습니다 refs/original
. 또한 이제 .git/shallow
파일을 삭제할 수 있습니다 .
이 작업을 마치면 이제 접목되지 않은 기록을 새 리모컨 으로 푸시 할 수 있습니다 .
다음과 같이 시도하십시오.
mkdir -p /tmp/git-copy
cd /tmp/git-copy
# create another copy of your repository
git clone file:///path/to/cloned/repo
cd repo
git rebase -i (first-commit)
# in vim:
# :2,$s/^pick/squash
# :w
# Now wait, it will take a while...
git push --mirror git@github.com:username/new-repo.git
방금 이 저장소 에서 시도했습니다 . 작동하는 것 같습니다-기록이 없으며 모든 하위 모듈이 손상되지 않았습니다.
'UFO ET IT' 카테고리의 다른 글
NaN의 비트 패턴이 실제로 하드웨어에 의존합니까? (0) | 2021.01.08 |
---|---|
정의 순서대로 Python Enum 반복 (0) | 2021.01.08 |
세분화 오류의 일반적인 원인에 대한 명확한 목록 (0) | 2021.01.08 |
JavaScript ES6 클래스가 비동기 코드베이스와 함께 사용됩니까? (0) | 2021.01.08 |
그리드 시스템에서 밀기와 오프셋의 차이점은 무엇입니까? (0) | 2021.01.07 |