기본 Unix 명령을 사용하여 git 저장소를 복사 (복제 아님)해도됩니까?


22

git 사용에 익숙하지 않아서 일반적인 UNIX 명령 ( cp또는 tar/ 와 같은 untag)을 통해 Git 저장소를 복사하는 것이 좋을지 궁금했습니다 git clone.

나는 일부 코드가 git에서 체크 아웃 한 프로덕션 환경 (python virtual)이있는 상황에 처해있다. git 관점에서 tar또는 전체를 사용하여 전체 환경을 복사하는 것이 나쁜 생각인지 궁금합니다 . 이 접근법은 코드베이스 / 환경의 빠른 사본을 만드는 데 편리합니다.

내 관심사는 git clone이 일부 고유 ID를 작업 사본과 연관시켜 하나의 파일 시스템이 다른 시스템에서 파일 시스템으로 복사 된 두 개의 작업 사본이 존재하면 충돌을 일으킬 수 있다는 것입니다.


와우 나는이 상황에 처해 있었기 때문에 소스 제어하에 일부 파일이 있었고 일부는 그렇지 않았으며 보존 해야하는 파일 권한이있었습니다. 이 질문을하게되어 기쁩니다.
Joe C

답변:


21

완벽하게 괜찮습니다.

git 모든 이력, 커밋 등을 사이트에 저장합니다. 이것은 DCVS의 기본 속성입니다.

기술적으로 말하면, gitDCVS의 요점이 있다는 것입니다 때문에, 복사 저장소 사방 주위를 실행하는 잘 작동 할 수 는 주어진 저장소의 외부에 무슨 일이 일어나고 있는지 알 필요가 없습니다 , 당신이 그것을 말하지 않는 않는 사실 .

동일한 원칙이 여기에 적용됩니다.


1
내 이해는 복제 된 저장소에 부모에 대한 링크가 포함된다는 것입니다. OS 복사 명령을 사용해도 해당 링크가 생성되지 않습니다.
Tony

@Tony True이지만을 사용하여 해당 링크를 제거 git remote remove origin하면 Git이 상위 리포지토리를 업스트림으로 사용하지 못하게됩니다.
new123456

2

전체 작업 디렉토리를 시스템의 다른 곳으로 복사하고 Git, Hg 또는 SVN을 사용할 때 정상적으로 작동하도록해야합니다. 다른 SCM에 대해서는 언급 할 수 없습니다.


0

이것은 더 특이한 사용 사례이지만 ...

repo유틸리티가 .git디렉토리 에서 심볼릭 링크를 만드는 것을 보았습니다 . 이 경우 복사를 수행 할 때 기호 링크를 역 참조해야합니다. 예 :

cp -r -L <source-repo-dir> <destination-repo-dir>

0

괜찮지 만 레포를 다른 사람과 공유하려는 경우 다음을 고려하십시오 .

  • 귀하의 config파일을 다른 사람이 걱정하지 않을 수 있습니다 리모컨이있을 수 있습니다.
  • 귀하 logs공유 할하지 않을 수도 폴더를 참조해야합니다. Git은 최종 결과에 익숙해 질 때까지 컴퓨터에서 불쾌한 작업을 수행 한 다음 원격으로 (때로는) 공유하도록합니다. 그 불쾌한 역사 중 일부는 귀하의 참조 기록에있을 수 있으므로 IMHO를 공유하지 않는 것이 좋습니다.
  • 귀하의 info/exclude파일은 일부 파일은 무시 될 수 무시해야합니다.
  • 당신은 또한 고리, 가지 및 개인적인 것들을 가질 수 있으며 공유하지 않는 것을 선호합니다 ...
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.