2009-06-26 5 views
0

~/bin /에 내 dev 파일이 있고 ~/github/myProject /에 내 힘내 저장소 파일이 있습니다. 나는 항상 후자에 이전 위치에서 파일을 복사하려면 다음 파일을 실행 :~ -files 및 .gitconfig를 제외한 모든 파일을 Git -repo에 복사 할 수 없습니다.

#!/bin/zsh 

# editors# {{{ 
cp /Users/Masi/.emacs /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/bin/editors/emacs/* /Users/Masi/gitHub/MasiDvorak/editors/emacs/ 

cp /Users/Masi/.vimrc /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/bin/editors/vim/* /Users/Masi/gitHub/MasiDvorak/editors/vim/ 
# }}} 
# shells# {{{ 
cp /Users/Masi/.bashrc /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/.profile /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/.zshrc /Users/Masi/gitHub/MasiDvorak/ 
# }}} 

# programming# {{{ 
cp /Users/Masi/.screenrc /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/.Xmodmap /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/.xmonad/xmonad.hs /Users/Masi/gitHub/MasiDvorak/.xmonad/ 
cp /Users/Masi/.gdbinit /Users/Masi/gitHub/MasiDvorak/ 
cp /Users/Masi/.xmonad/xmonad.hs /Users/Masi/gitHub/MasiDvorak/ 
... 
# }}} 

이유는 내가 힘내에 추가되는 등

xmonad.hs~ # all ~ -files 
.gitconfig 

로 파일을 피하고 싶은 것입니다 repo.

내 파일 복사 방법은 각 파일을 찾아 copy_dev-files_to_github 파일에 추가하는 데 시간이 많이 걸리기 때문에 제어하기가 어려워집니다.

어떻게 개발 파일을 로컬 Git 저장소로 복사합니까?

답변

1

또 다른 해결책은 개발 환경의 인프라 구조를 변경하여 처음부터 이러한 복사 단계가 필요하지 않도록하는 것입니다.

+0

@ Magnus : 귀하의 요점은 훌륭합니다! --- 나는 홈에서 내 dotFiles에 대한 repo를 만들 것이며 ~/bin에서 내 다른 dotFiles에 대해 하나의 repo를 만들 것입니다. 간단히 말해 하나의 레포를 2로 나누는 것입니다. –

1

--exclude 옵션과 함께 rsync을 사용할 수 있습니다.

rsync --exclude='.gitconfig' --exclude='*~' /Users/Masi/ /Users/Masi/gitHub/MasiDvorak/ 
+0

@ 제레미 : % --exclude = *. a %를 추가하여 명령을 실행합니다. % ./toCopyDotFiles:3 : 일치하는 항목이 없습니다. --exclude = *. a %. 어떻게 경고를 피할 수 있습니까? –

+0

잘 모르겠습니다 - 해당 행에 다른 것이있을 수 있습니다. 시도해 볼 또 다른 옵션은 제외 옵션 목록을 포함하는 파일 이름을 지정하는 --exclude-from = FILE 옵션입니다. 그 명령 줄을 청소거야 :) –

+0

@ 제레미 : 나는 당신의 코드를 실행합니다. 다음과 같은 결과가 나타납니다. ./toCopyDotFiles:3 : 일치하는 항목이 없습니다. --exclude = * ~ % 이것은 exclude 명령에 문제가 있음을 나타냅니다. –

3

파일을 수동으로 복사하는 이유는 무엇입니까? 반드시 repo에 추가 한 다음 필요에 따라 체크 아웃하고 커밋해야합니다. 나는 파일을 옮길 필요가 없다는 것을 알지 못한다. 그것은 로컬 체크 아웃의 모든 목적을 이길 것으로 보인다.

특정 파일을 추가하지 않으려면 .git/info/exclude에 나열하면됩니다.

+0

*. [ao], * ~ 및 .gitconfig를 파일에 넣습니다. % touch masi ~ *로 새 파일을 만들었습니다. % git add. % masi ~ 파일이 내 저장소에 추가되었습니다. --- 이것은 exclude-file의 목적을 정확하게 이해하지 못했다는 것을 의미합니다. –

+0

명령이 작동해야합니다. 다음 문서를 읽었지만 여전히 동일한 문제가 지속됩니다. http://ftp.kernel.org/pub/software/scm/git/docs/v1.0.13/git-ls-files.html –

+0

@Daniel : 새 스레드 스레드에서 귀하의 답변을 기반으로 시작 http://stackoverflow.com/questions/1053867/unable-to-work-effectively-with-git-locally –

1

일단 파일이 저장소에 추가되면 제외하면 git이 해당 파일을 무시하지 않습니다.
신선한 저장소에서 .gitignore 파일을 사용해보십시오. 또한 홈 디렉토리가 아닌 중요하지 않은 디렉토리에서 재생해야합니다.