2010-05-25 1 views
10

내 직장은 Subversion을 소스 컨트롤에 사용하므로 내 지점의 이점에 대해 자식 자식으로 놀고 있었고, 기본 저장소를 건드리지 않고 자주 원하는대로 커밋했습니다.힘내 힘은 주인에게 완전한 동기화

git svn 체크 아웃이 로컬이므로 백업용으로 네트워크 공유에 복제했습니다. 내 생각에 내 바탕 화면에 덤프가 걸리면 적어도 네트워크 공유에 repo가있어 내가 아직 dcommit 할 기회가 없었던 변경 사항을 얻게됩니다.

내 워크 플로는 바탕 화면에서 작업하고, 변경하고, 커밋하는 등의 작업입니다. 하루가 끝나면 현재 변경 사항이 적용된 네트워크 공유의 저장소를 업데이트하고 싶습니다. git clone repo_on_my_desktop을 사용하여 네트워크 공유에 저장소를 설정 한 다음 git pull origin master으로 네트워크 공유의 저장소를 업데이트했습니다. 내가 실행중인 문제는 git rebase을 사용하여 주 svn 저장소에 dcommitting하기 전에 다중 커밋을 수행하는 것입니다. 이렇게하면 야간에 백업을 시도 할 때 네트워크 공유의 저장소에 병합 충돌이 발생합니다.

매일 밤 새롭게 git clone을 수행하지 않고 바탕 화면의 저장소와 완전히 동기화하는 방법이 있습니까?

답변

8

두 의견 :

1/나도 bare repo 또는 bundle 가지고 추천 할 것입니다 (하나 개의 파일을 쉽게 이동할 수) 네트워크 공유

2은/차라리에 원격으로 network_repo 추가합니다 귀하의 데스크톱 repo 및 거기에서 밀어 (git push --force network_repo master) : 당신은 당신의 작업 레포에있어.

25

다른 repo에서 가져 오려는 경우 리베이스하지 않아야합니다. 당신이 당신의 네트워크 공유의 변화를 무시 괜찮다면

, 당신은이 작업을 수행 할 수 있습니다이 원점 마스터 로컬 마스터 재설정됩니다

git fetch origin master 
git reset --hard origin/master 

.

경고 : 이것은 하드 리셋, 그것은 (최선을 다하고 * 여부) 모든 변경 사항을 잃을 것이다.

하지만 실제로 변경 사항이없는 것으로 가정하고 있으며 대부분 백업에 불과합니다.

* 참고 : 기술적으로 말해서 커밋 된 변경 사항은 reflog에서 만료 될 때까지 손실되지 않지만 모든 의도와 목적을 위해 실제로 손실됩니다.

+0

아니요. 관계없는 파일은 제거되지 않습니다. – felixh