OSX에서 sshfs를 통해 git 사용하기

OSX에서 sshfs를 통해 git 사용하기

새로운 업무상의 이유로 Ubuntu 14.04에서 OSX Yosemite로 전환할 예정입니다.

저는 주로 R로 작업하고, 서버(Debian)의 코드를 관리하기 위해 RStudio와 git을 사용합니다. 이를 위해 sshfs를 사용하여 서버를 마운트하고 로컬 볼륨처럼 사용했는데 완벽하게 작동했습니다.

OSX에서 이 작업을 시도했지만 osxfuse+sshfs를 통해 마운트했습니다. 그러나 OSXFUSE 볼륨에서 실행할 때 git이 제대로 작동하지 않으며 변경 사항을 커밋하려고 하면 다음 오류가 발생합니다.

fatal: Unable to create '/Users/maltethodberg/server/home/nzl922/rstudio_projects/mactest2/.git/index.lock': File exists.

If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.

하지만 내 컴퓨터에서 로컬로 생성된 Rstudio를 사용하여 git 프로젝트를 생성하고 관리할 수 있습니다.

OSX에서 sshfs와 git이 잘 작동하도록 하기 위해 내가 모르는 몇 가지 트릭이 있습니까? 이 시점에서는 서버나 로컬 컴퓨터에 문제가 있는지 확실하지 않습니다.

어떤 도움이라도 대단히 감사하겠습니다!

답변1

이 오류 메시지를 발생시키는 .git 폴더에 index.lock 파일이 있을 수 있습니다. 이 오류는 한 사용자가 변경을 하고 다른 사용자가 잠금을 소유할 때마다 표시됩니다. 이렇게 하면 다른 사용자의 커밋으로 인한 간섭으로부터 로컬 Git 트리가 보호됩니다.

계정은 귀하가 소유하고 있는데 왜 원격 시스템의 사용자가 잠금을 소유하지 않는지 궁금할 것입니다. 이는 osxfuse 및 sshfs가 올바른 권한을 제공하지 않기 때문일 수 있습니다. 원격 시스템은 로컬 사용자 및 그룹 ID를 원격 시스템의 사용자 및 그룹 ID와 일치시키려고 시도합니다. 이것이 문제의 원인일 수 있습니다. 원격 시스템에 대한 올바른 권한을 얻기 위해 sshfs를 얻을 수 있습니다.

~에서이 게시물나는 인용한다:

명령줄에서 sshfs를 호출하는 경우 -o defer_permissions만 추가하면 됩니다. Macfusion을 사용하는 경우 "SSH Advanced > Extra Options"에 -o defer_permissions를 입력하세요.

관련 정보