2010-04-24 5 views
5

백업 도구로 git을 사용하고 노트북과 데스크탑 사이에 $ HOME 디렉토리에 '로밍 프로필'을 사용하고 있습니다.Git이 하위 디렉토리의 .git 디렉토리를 무시합니다.

내 문제는 내 $ HOME에 내가 개발중인 여러 자식 프로젝트가있는 개발 디렉토리가 있다는 것입니다. 힘내는 내가 하위 디렉토리 .git 폴더를 추가하는 것을 허용하지 않을 것이다. 그래서이 프로젝트에 전념하기 위해 변경 사항을 $ HOME git repo에 넣고 랩톱 (작성한 곳과 .git dir exsits)을 가져와 커밋해야합니다.

서브 모듈에 대해 읽었지만 실제로 원하는 것은 아닙니다. 난 아이들 .git 폴더를 이전 디렉터리처럼 취급하여 주위로 옮겨서 백업 할 수 있기를 바랍니다.

누구든지이 작업을 수행했거나 내가 어떻게 될지 알고 있습니까?

+4

imho, 이것은 아마도 작업에 대한 잘못된 도구 일 것입니다. 랩탑과 데스크탑을 동기화하려면 조화를 고려해야합니다. $ HOME에서하는 모든 작업을 버전 화하고 싶다면 가장 쉬운 옵션은 일반적인 rsync이지만, 물론 이것은 증분이 아닙니다. 증분 백업 제품이 필요하거나 rsync와 git을 사용하여 해킹 할 수 있습니다. –

+0

@Igor : 일반적으로 동의합니다. 물론, git repos를 rsync 할 필요는 없습니다. 서브 모듈이 올바른 방법이 아니라고 결정하더라도, 대량으로 푸시/풀/업데이트하는 방법을 쉽게 스크립트 할 수 있습니다. 목적). – Cascabel

+0

rsnapshot이 증분 작업을 수행 할 수 있습니다. 정직하게 서브 모듈을 사용해야합니다. 나는 모든 저장소를 전송하는 스크립트를 작성합니다. 어쨌든 왜 자식 객체를 버전 화하고 싶습니까? 그냥 쉽게 전송? 다른 것을 사용하십시오. 또한 이것은 SUPERUSER에 있어야하는 SO 문제가 아닙니다. 왜 사람들은 SO에 관한 모든 프로그래밍이 아닌 질문을합니까? – xenoterracide

답변

0

내가 첫 번째 백업 당신이 당신의 $ HOME 아래에있는 모든 .git 프로젝트는 것입니다 스크립트를 추천 할 것입니다 : 그것은 (여전히 $ 홈에서) 하나 백업 파일을 생성합니다
이 이상 git bundle를 참조하십시오.

그리고, 당신은 당신이 모두를 내보낼 수

마지막으로합니다 (.git 프로젝트를 제외하고 $HOME 모두 포함하는) 주요 자식의 repo에 ("번들"또는) 파일을 그 백업을 갱신/추가 할 수 있습니다 동일한 Git 백업 기술 (git bundle)을 사용하여 $ HOME을 하나의 파일로 만듭니다.

0

이전에는 Git 백업 도구 인 gibak을 사용했습니다. 파일 속성을 관리하는 것 외에도 홈 디렉토리의 Git 저장소를 관리합니다.

한 가지 면책 조항. 나는 그것을 잠시 동안 사용했지만 때때로 백업이 손상되었습니다. 나는 이것을 조사하지는 않았지만 실행중인 응용 프로그램이 끊임없이 홈 디렉토리에 데이터를 기록한다는 사실과 관련이 있다고 생각합니다. 어떤 시점에서 해시가 일치하지 않아 고정 된 상태 (또는 새 백업 시작)를 위해 스마트 한 작업을해야합니다.

적어도 시도해보십시오. 효과가있을 수 있습니다. 내가 언급 한 문제는 Git이 원인 일 수도있다. 1.5 년 전에 시도 했으므로 그동안 수정되었을 수 있습니다.

2

하지 마십시오. 버전 관리가 된 저장소의 버전 관리 된 백업을 작성하기 때문에 이것은 바람직하지 않습니다. 그냥 rsync로 백업을 만드십시오 (여전히 자식을 git을 사용하여 버전을 만들 수 있습니다).

2

개인적으로 .profile 또는 .vimrc와 같은 일부 도트 파일을 동기화하려면 git을 사용하고 있습니다. 너 같은 문제를 피하기 위해서 나의 자식은 $ HOME/dot에 있고, 하나의 파일은 $ HOME에 심볼릭 링크되어있다.

관련 문제