2010-12-06 5 views
17

어제 저는 my fork of ConnectBot on GitHub으로 밀었습니다. 나는 한 번 밀었고, 나는 내가 원하는 방식으로 변화를 만들지 못했다는 것을 깨달았고, 커밋을 다시하고 다시 밀었다.GitHub에서 매달린 커밋을 제거하는 방법?

지금, GitHub의는이 두 커밋 :

유지하려면 두 번째 커밋하지만 첫 번째 커밋은 여전히 ​​사용할 수 있으며 여전히 내 활동 피드에 있습니다. 아무도 수정 된 버전 대신 실수로 그 커밋을 꺼내지 않도록 제거하려면 어떻게합니까?

답변

13

GitHub은 태그, 분기 또는 reflog와 같은 최상위 참조에서 도달 할 수없는 모든 커밋 (및 다른 객체)을 정기적으로 가비지 수집합니다. 즉, 시간이 지남에 따라 (다음 달에 말하기)이 개체가 사라질 것입니다.

풀링은 참조 된 객체 만 포함하는 팩을 생성해야하므로 아무도 복제 나 풀의 결과로 커밋을 받아야하지 않습니다. 예를 들어,

$ git clone git://github.com/nylen/connectbot.git 
Cloning into connectbot... 
remote: Counting objects: 6261, done. 
remote: Compressing objects: 100% (1900/1900), done. 
remote: Total 6261 (delta 3739), reused 5980 (delta 3520) 
Receiving objects: 100% (6261/6261), 3.04 MiB | 3.40 MiB/s, done. 
Resolving deltas: 100% (3739/3739), done. 
$ git cat-file -t 1cd775d 
fatal: Not a valid object name 1cd775d 

당신이 정말로 그것을 즉시 제거해야하는 경우

, 당신은 아마 GitHub Support에 문의해야합니다.

+8

4 년 후에 OP의 커밋은 Github에서 계속 사용할 수 있습니다. – Raf

+0

이전 커밋은 여전히 ​​SHA에서 사용할 수 있지만 커밋 목록에는 표시되지 않습니다. – Quantum7

+0

나는이 시간 이후에 다른 곳에 나타날지에 관심이 있습니다. 예를 들어, 이슈를 참조하는 오래된 커밋은 이슈보기에서 영원히 나타나나요? – Quantum7

2

저장소를 삭제하고 모든 커밋을 잃어 버릴 여유가 있다면 커밋하지 않고 다시 만들어야합니다. 데이터는 커밋 API에서도 사라집니다 (푸시 이벤트는 계속 표시됨). 또한 : https://stackoverflow.com/a/32840254/895245

관련 문제