히스토리에서 큰 파일을 제거하거나 로컬에서 히스토리를 완전히 제거한 다음 원본으로 푸시

아나스타샤

나는 git을 처음 접했고 완전히 길을 잃었습니다. 나는 기본적인 것을 놓친다고 확신합니다.

문제는 다음과 같습니다.

  1. 대용량 파일 (~ 2Gb)을 커밋하고 저장소에 푸시했습니다. 그런 다음 나는 그들을 제거했습니다-커밋-밀었지만 여전히 역사에 남아 있습니다. 어떻게 든 저장소를 축소해야합니다.
  2. 먼저 git 저장소를 축소하는 방법을 따랐습니다 . 로컬 버전 만 축소 할 수 있었지만 밀어 넣으려고하면 먼저 당겨야한다는 메시지가 표시되었습니다. 그러나 당기면 큰 히스토리 파일을 다시 가져올 수 있습니다.
  3. 여러 git 커밋되 돌리는 것과 유사하게 두 번 수행하여 마지막 두 커밋을 완전히 제거했습니다.

    git reset --hard HEAD^
    git push -f origin master
    
  4. 이제 git 로그에서 마지막 두 커밋을 볼 수 없지만 저장소 / 이력은 여전히 ​​큽니다.

  5. 파일이 더 이상 히스토리 에 없기 때문에 git가 볼 수 없기 때문에 git history에서 삭제 된 파일을 제거 할 수 없습니다 .

내가 저장소의 유일한 사용자이고 무가치 한 역사라고 말하면, 어떻게 든 저장소를 축소하면 됩니다. 그러나 로컬로만 변경을 수행 한 다음 저장소로 푸시 할 수 있으므로 저장소를 완전히 삭제하면 작동하지 않습니다.

    rm -rf .git

자식을 제거하고 밀어 낼 수 없습니다.

3을하는 것이 얼마나 나빴습니까? 전반적인 목표를 달성하기 위해 무엇을 할 수 있습니까? 어떤 제안이라도 감사하겠습니다. 미리 감사드립니다.

jub0bs

경우에만 (이 있는지 확인하십시오 당신은 아래의 각 글 머리에 동의합니다)

  • 역사는 가치가 없습니다.
  • 당신 외에는 아무도 원격 저장소에 의존하지 않습니다.
  • 작업 트리에 보관하려는 모든 파일 (반드시 저장소에있는 것은 아님)이 현재 작업 트리에 있습니다 (일부 커밋에 묻히지 않음).
  • 새로운 리포지토리를 로컬에서 새로 시작한 다음 해당 리포지토리를 원격으로 푸시하고 싶습니다.

다음을 수행하십시오. .git프로젝트 디렉터리에서 폴더를 삭제 한 다음 Git을 다시 초기화합니다.

rm -rf .git
git init

리포지토리의 구성에 리모컨을 추가하십시오.

git remote add origin <url-of-remote-in-question>

스냅 샷 찍기 :

git add <at-your-discretion>
git commit -m "initial commit"

그런 다음 새로운 master브랜치를 리모컨으로 강제 푸시합니다 .

git push -f origin master

편집 : 마지막 강제 푸시 명령이 실패하면 원격 저장소가 비 빨리 감기 병합을 거부하도록 구성되었음을 의미해야합니다. 참조 소스 포지의 repo는 "부인이 아닌 빨리 감기 심판 / 헤드 / 마스터"오류를 제공

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관