programing

기록 없이 새 분기를 푸시하는 방법

testmans 2023. 8. 13. 09:35
반응형

기록 없이 새 분기를 푸시하는 방법

나는 마스터와 구성이라는 두 개의 관련 없는 지점을 가진 gitrepo.구성을 만들고 모든 파일을 제거한 다음 구성 파일에만 배치했습니다.이제 원격 repo에서 이를 푸시하고 싶지만, 새로 추가된 브랜치(모든 변경 사항 및 원래 브랜치의 이전 리비전 로그 없음)가 비어 있습니다.

어떻게 하면 모든 이력을 정리하고 밀어낼 수 있을까요?

모든 파일을 삭제해도 기록이 제거되지 않습니다.기록이 없는 분기를 먼저 생성하고 구성 파일을 추가해야 합니다.요즘은git checkout을 가지고 있습니다.--orphan기록이 없는 분기를 만드는 옵션입니다.다음은 에 대한 정보입니다.--orphan옵션:

--filename <new_filename>

<start_point>에서 시작한 이름이 <new_branch>인 새 독립 분기를 생성하고 전환합니다.이 새 분기에 대한 첫 번째 커밋에는 부모가 없으며 다른 모든 분기 및 커밋과 완전히 연결되지 않은 새 기록의 루트가 됩니다.

인덱스와 작업 트리는 이전에 "git checkout <start_point>를 실행한 것처럼 조정됩니다.이렇게 하면 "git commit -a"를 쉽게 실행하여 루트를 커밋함으로써 <start_point>와 유사한 경로 집합을 기록하는 새 기록을 시작할 수 있습니다.

이 기능은 전체 기록을 표시하지 않고 커밋에서 트리를 게시하려는 경우에 유용합니다.이 작업을 수행하여 현재 트리는 "정리"되어 있지만 전체 내역에 독점적이거나 다른 방식으로 방해를 받는 코드 비트가 포함된 프로젝트의 오픈 소스 분기를 게시할 수 있습니다.

<start_point>의 경로 집합과 완전히 다른 경로 집합을 기록하는 연결 끊김 기록을 시작하려면 작업 트리의 최상위 수준에서 "gitrm -rf"를 실행하여 분리된 분기를 만든 직후 인덱스와 작업 트리를 지워야 합니다.그런 다음 작업 트리를 다시 채우고 다른 곳에서 복사하거나 타르볼을 추출하는 등의 방법으로 새 파일을 준비할 수 있습니다.

여기 체크아웃을 위한 문서 링크가 있습니다.실행할 수도 있습니다.git help checkout뿐만 아니라.

기록이 없는 분기를 작성한 후 서버에 적용하면 해당 분기에도 기록이 없습니다.FWIW, 그것은 내가 생각하는 것을 도와줍니다.git push"원격 브랜치를 로컬 브랜치와 동일하게 표시"합니다.그래서 만약 여러분이 역사를 가지고 있고, 밀고 있다면, 그것은 역사를 가지고 있을 것입니다.그렇지 않으면 밀린 가지가 안 됩니다.

어떻게 하면 모든 이력을 정리하고 밀어낼 수 있을까요?

git checkout --orphan <name_you_choose_for_orphan_branch>
git commit

그러면 다음을 실행할 수 있습니다.

git push <remote-name> <branch-name>


cf. 이 한 줄기.

저는 개인 정보를 공유하거나 제 이력을 삭제하지 않고 프리랜서에게 코드를 보내기 위해 이것이 필요했습니다.

소스 트리를 사용하는 사람이 있을 경우, 이렇게 할 수 있었습니다.제가 소스 관리에 익숙하지 않아서 제가 잘못했거나 잊어버린 것이 있으면 알려주세요.

  1. 소스 트리의 터미널 버튼으로 이동했습니다.
  2. 'git checkout --orphan clean-ver' 명령을 사용하여 새 'orphan' 분기를 만들었습니다. 여기서 clean-ver는 내 분기 이름입니다.
  3. 터미널을 닫고 보니 새로운 고아 지점에 있었기 때문에 커밋 로그가 삭제되었습니다.모든 소스 코드를 준비하고 변경 사항을 커밋했습니다.
  4. 저장소 > 원격 또는 저장소 추가 > 저장소 설정 > 추가에서 비트 버킷 저장소를 설정했습니다.
  5. 나는 그것을 닫고, 푸시 버튼을 클릭했습니다.
  6. 저는 제 새로운 '깨끗한' 지점을 선택했습니다. "좋습니다."

제가 비트 버킷을 확인했을 때, 이것이 효과가 있는 것처럼 보였고 저의 커밋 기록을 폐기한 것 같습니다.

이것이 누군가에게 도움이 되기를 바랍니다.

git checkout --orphan <name_you_choose_for_orphan_branch>
git rm . -r -f

언급URL : https://stackoverflow.com/questions/12543055/how-to-push-new-branch-without-history

반응형