2012-06-20 3 views
2

내가 저장 역사는 VCS에 대한 유지하기 위해 더 나은 무언가 것을 이해하고 나는 자식이 아닌 전체 기록 로그 만 복제 할 수 있습니다 알고 :저장소 히스토리를 작게 유지하는 가장 일반적인 방법은 무엇입니까?

  • 내가 두려워 GitHub의 공간이 제한됩니다 (주요 원인)
  • 을 이 스크립트에 의해 자동 커밋 처리의
  • 난 단지
  • 서버 공간이 아직

을 제한 내가 충분히 할 수 없습니다 수 역사에서 지난 10 또는 5 커밋 흥미로운이야 내가 왜 그것을 원하지만 내가 셸 시도 : 아이디어를 양식 양식 : 나는이 (자동) 저장소를 포크하고 git merge (예, 도구로)를 사용하여 작업하고 업스트림으로 자신을 업데이트하고 싶습니다. 그래서이 경우에 나는 git을 올바르게 사용할 것이다. 이상적으로 나는 "git merge"가 자동화 된 업스트림 저장소가 없어도 만들어야하지만 또 다른 작업입니다.

은 지금 나는 모든 역사를 사용하여 자식이

git checkout --orphan temp $1 
git commit -m "Truncated history" 
git rebase --onto temp $1 origin/master 
git checkout master 
git branch -D temp 

을 리베이스 그러나 그것은 새로운 저장소를 만들고 직접이 파일을 밀어 쉽게, 쓸모 같은 복잡한 청소 해당 교묘 한 방법을 발견했다. git 저장소 히스토리를 작게 유지해야합니다.

+1

"스크립트로 자동 커밋 처리"? "역사상 마지막 10 ~ 5 회의 커밋에서만"? git이 올바른 도구일까요? 당신은 [vcs] (http://en.wikipedia.org/wiki/Revision_control)로 사용하지 않는 것 같습니다. –

+0

아니요, 확실하지 않습니다. 그러나 그것은 또 다른 질문입니다. 나는 대안에 대해 생각할 필요가 있음을 깨달았다. – Cynede

+0

무언가가 복잡하다는 것이 그것을 쓸모 없게 만들지는 않습니다. 흔히 다른 방향입니다. 명령이 필요한 것으로 판명되면 작업을 수행하는 스크립트를 작성하십시오. Abracadabra, 복잡성은 사라졌습니다. – tripleee

답변

3

당신이하는 일은 매우 잘못되었습니다.

VCS은 코드 기록을 유지하고, 코드 작성자를 병합하고, 분기를 관리하고, 이전 버전을 검색하고, 버그의 출처를 찾고, 새로운 전략을 테스트하는 등의 작업을 도와줍니다. 코드 백업에도 유용하지만 그 기능 만 다릅니다.

최근 작업을 저장하는 도구로 git에 관심이있는 것 같습니다. git이 전념하지 않는 것은 전혀 아닙니다.

귀하의 주장은 유효하지 않습니다. 코드 (및 매개 변수화 및 작은 자원) 만 git에 저장하면 github 저장 공간이나 서버 공간이 폭발하지 않습니다. 나는 많은 코더와 함께 git에 많은 프로젝트를 가지고 있으며 점령 된 공간은 무시할 만하다. 공간을 절약하기 위해 기록을 지우려고해서는 안됩니다.

코딩하는 경우 git을 정상적으로 사용하고 모범 사례를 존중하며 매우 귀중한 도구이므로 후회하지 않을 것입니다.

+0

그러나 왜 내가 원하는지 완전히 생각할 수는 없다. 그러나 나는 쉘을 시도한다. 나는이 (자동화 된) 저장소를 포크하고 git merge (예, 도구로서)를 사용하여 작업하고 업스트림으로 자신을 업데이트하고 싶다. . 그래서이 경우에 나는 git을 올바르게 사용할 것이다. 이상적으로 나는 "git merge"가 자동화 된 업스트림 저장소가 없어도 만들어야하지만 또 다른 작업입니다. – Cynede

+0

나는 너를 잘 모르겠다. 그러나 의견 : 당신이 유일한 코더이고 가지를 만들지 않으면 병합을 사용할 필요가 없습니다. 서버로 보내거나, 저장소를 복제하거나, 서버 (또는 github)에 복제 된 저장소를 넣은 다음 푸시를 사용하여이 커다란 저장소로 지역 커밋 된 작업을 보냅니다. –

+0

rsync에서 git 저장소를 포크하여 직접 포크하고 최신 상태로 유지하십시오. – Cynede

관련 문제