공유 네트워크 드라이브에 자식 변경 사항 푸시


90

4 명의 팀이 Git (특히 Windows 용 Github )을 사용하여 로컬 변경 사항을 공유 네트워크 드라이브에 푸시하려면 어떻게해야합니까?

지금 (Git없이) 네트워크 드라이브에서 로컬 컴퓨터로 파일을 복사하고 파일을 편집 한 다음 공유 네트워크 드라이브에 다시 업로드해야합니다. 이것은 많은 오류로 이어질 수있는 힘든 과정이지만 Git이 우리를 도울 수있는 것처럼 보입니다.

공유 드라이브에 Git을 설치하고 거기에서 이동할 수 있습니까?

답변:


123

자신에게 맞는 것을 찾았는지 여부는 확실하지 않지만 Windows 네트워크 드라이브에서 그 작업을 수행하는 방법에 대한 글이 있습니다.

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

cmd 프롬프트에서 매핑 된 드라이브로 변경합니다.

$ cd g :

그런 다음 곧 git 저장소로 cd하십시오.

$ cd 스크립트

그런 다음 빈 git 저장소를 만듭니다. --bare 옵션을 사용하지 않으면 문제가 발생하므로 생략하지 마십시오.

$ git init --bare

이제 아직 로컬 git 저장소가없는 경우 로컬 드라이브로 다시 이동하여 원하는 위치에 새 저장소를 복제 할 수 있습니다.

$ c :

$ cd 작업 / 스크립트

$ git clone file : // g : \ scripts

복제하면 "origin"이라는 원격지가 자동으로 생성되며 로컬에서 변경할 때마다 안전하게 보관할 수 있도록 서버에 푸시 할 수 있습니다.

$ git push origin master

이미 git 저장소가 있고 공유 드라이브로 푸시하려는 경우 로컬 git dir 내에서이를 수행 할 수 있습니다.

$ git remote add origin file : // g : \ scripts

$ git push origin master


1
고마워요-저는 제 홈 네트워크의 개인 프로젝트를 위해 정확히 이것을했습니다.
Martin Snyder 2013 년

이 단계를 따랐지만 git push origin master 오류를 실행할 때 다음과 같은 오류가 발생합니다. sh를 생성 할 수 없습니다. sh를 생성 할 수 없습니다. 치명적인 파일이나 디렉토리가 없습니다. 포크 할 수 없습니다.
NickStees

감사합니다. 이 답변 찾기 위해 오랜 시간이 걸렸습니다
사이먼 Huckett을

공유 드라이브가 매핑되지 않은 사람은 탐색 할 가상 임시 드라이브를 만들도록
푸시 (팝

--bare를 사용하지 않으면 어떤 문제가 발생합니까? 네트워크 드라이브에 베어 리포지토리가 이미 있고 원격으로 사용하고 싶습니다.
Fractaly

24

우리 팀은 현재 정확히 이것을하고 있습니다. 모든 개발자에게는 다음이 있습니다.

  1. 로컬 머신에 설치된 Git
  2. 자신의 개인 공유 드라이브에 액세스 ( L:)
  3. 공유 그룹 드라이브 ( V:)에 액세스

드라이브 init -bare에 "원격"저장소 (를 사용하여 설정 )가 V:있고 모든 사람이 개인 L:드라이브 에 복제본을 가지고 있습니다. 모든 변경 사항은 L:드라이브에 적용되고 드라이브로 푸시 된 V:다음 나중에 다른 개발자가 L:드라이브 의 각 개인 저장소로 가져옵니다 . 이것은 문제없이 작동하며 Git 서버의 필요성을 완화합니다.


좋아요! 먼저 로컬 리포지토리를 만든 다음 공유 드라이브에서 해당 리포지토리의 원격을 설정해야합니까?
user1549303 jul.

1
@ user1549303-그것이 우리가하는 방법입니다. 를 사용하여 로컬 리포지토리 ( L:드라이브 리포지토리)를 git init만든 다음 (또는 a 를 사용하고에서 푸시 v:)를 사용하여 원격 ( 드라이브 리포지토리) 을 만들 수 있습니다 . git clone --baregit init --bareL:
eykanal

@eykanal-우리 팀은 현재 고대의 끔찍한 소스 제어 라이브러리를 사용하고 있으며 git로 전환하려고합니다. 현재 라이브러리에서 내가 할 수있는 한 가지는 파일을 체크 아웃했지만 변경 사항을 체크인하는 것을 잊은 사람을 확인하는 것입니다. git을 사용하면 모든 저장소가 로컬이므로 누군가 "v :"로 푸시하는 것을 잊었는지 어떻게 알 수 있습니까?
Kevin Buchan

3
@KevinBuchan-새 질문으로 댓글을 올리는 것이 좋습니다.
eykanal

1
두 개발자가 동시에 같은 공유 저장소 (예 : V :)로 푸시하려고 할 때 Git이 반응합니까? 동시 푸시 작업에 문제가 있습니까?
Jordi

2

네트워크 드라이브를 가리키는 다른 원격을 추가 할 수 있습니다 (git remote).

그런 다음 github에서 수행하는 것과 유사한 푸시 풀을 사용할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.