2017-01-10 2 views
0

TFS 서버를 GIT (Bitbucket) 서버로 전송해야합니다.Git 저장소 지우기

우리는 현재 git-tfs을 사용하고 있지만 마이그레이션하기 전에 몇 가지 테스트를하고 있습니다 (젠킨 구성, 모든 것이 올바르게 전송되었는지 확인).

문제는 이전에 실행 한 내용이 많은 저장소가 있기 때문에 지금은 git push 명령을 실행할 수없는 것 같습니다.

리포지토리를 "재설정"할 수있는 방법이 있습니까 (커밋을 한 번도하지 않은 경우처럼)? 삭제하지 않고?

나는 이것을 발견했습니다 : Clear git repository on Bitbucket?하지만 문제는 제가 6 년 동안 60 가지 이상의 작업을하고 있기 때문에 하나씩 청소할 수는 없습니다.

또한 저장소를 삭제할 수 없기 때문에 이미 많은 것들을 설정했습니다 (후크, 젠킨스 연결 ...).

+0

* ... 60 개가 넘는 브랜치가 있으므로 하나씩 정리할 수는 없습니다. * 스크립팅의 문제점은 무엇입니까? – Leon

+0

@Leon 제안에 개방적이지만 이전 가져 오기가 제대로 작동하지 않았거나 명확하지 않은 (쓰레기 수집되지 않은) 일부 항목을 남겨 둘 수 있습니까? – J4N

답변

1

이것은 실제로 TFS 버전/bitbucket에 따라 다릅니다. 모든 브랜치와 태그를 삭제하고 Master를 깨끗한 슬레이트를 얻기위한 첫 번째 커밋으로 재설정 할 수 있습니다. 그러나 TFS 서버 버전에 따라 실제로 "쓰레기"가 수집되지 않을 수도 있습니다. BitBucket의 가비지 수집 정책에 대해 잘 모르겠습니다.

Git 가비지 수집은 TFS 2015 업데이트 3에서 도입되었으며 이전 버전은 모든 참조를 삭제 한 경우에도 실제로 서버에서 아무 것도 정리하지 않습니다.

쉽게 정리 프로세스를 스크립팅 할 수 있습니다. git fetch --all을 사용하여 로컬 저장소에 모든 분기 정보가 있는지 확인한 다음 git branch --list -r을 사용하여 모든 원격 분기를 나열하십시오. 이를 사용하면 이러한 분기를 삭제하고 서버에 해당 삭제를 쉽게 스크립트 할 수 있습니다. 그런 다음 git push --force --all

Then use git update-ref refs/heads/master a12d48e2 (insert your own commitish) to reset the master.

은 다시 서버로 모든 것을 보낼 수 있습니다.

+0

안녕하세요, 왜 TFS 버전이 중요한지 잘 모르겠지만, 현재 TFS 2015입니다. ''git --fetch --all'과 관련된 문제 : 8h 이후에 생성 된 git 저장소가 변경됩니다. 시간이 없어, 안 그래? 원격 브랜치 만 제거하고 로컬 브랜치는 제거하지 않는 방법은 무엇입니까? – J4N

+0

그냥 새 Repo에서 할 ... – jessehouwing