Git一般会在安装的硬盘上窒息吗?或者只是Git GUI的?

she*_*nan 6 git mount github atlassian-sourcetree

我知道我应该死在终端中使用git,但我在Mac上使用Git客户端叫做Sourcetree,让整个事情变得更加性感.

问题是我添加到我的设置中的新Synology NAS驱动器.在我的Mac上安装了一个NAS共享文件夹时,Sourcetree在尝试暂存/提交/推送时会发出嘎嘎声.

我的主分支在GitHub上,所以我使用Sourcetree克隆了一个repo到已安装的驱动器.作为一个快速测试,我编辑了一个不重要的文件,保存并观察了客户端中的未分级更改.到目前为止成功; 已编辑的文件将显示在Sourcetree的未暂存窗口中.我去上演吧.致命错误:

git -c diff.mnemonicprefix = false -c core.quotepath = false -c credential.helper = sourcetree add -f - README.md

致命:无法编写新的索引文件

完成但有错误,请参见上文

我查看了隐藏.git文件夹中索引文件的文件权限(使用NAS目录浏览器,因为Mac没有显示隐藏文件.文件权限是读取,写入,但不执行.允许执行文件,Sourcetree的阶段/提交/推送尝试工作.

显然,我不想每次克隆git存储库时都必须手动调整文件权限,所以有没有人知道为什么Sourcetree/Git没有创建具有更多有用文件权限的repo克隆?

为了记录,我尝试使用GitHub OSX客户端进行相同的操作,这似乎是成功的(无需编辑权限).但我发现GitHub客户端有点原始,并且更喜欢使用Sourcetree.

Das*_*ter 5

这是一般的git.这个答案表明,这是因为文件锁定.有关更多信息,只需搜索SO"git samba"

根据我的经验,在网络驱动器上运行非裸仓库是一个坏主意.

有关最佳做法:http: //git-scm.com/book/ch4-1.html

所以要么:

  1. 在NAS上设置SSH服务器并推送/拉到该服务器
  2. 映射你的网络共享(就像你现在一样),但是对它进行了简单的回购.然后,推/拉到那一个.

在任何情况下,建议带有工作副本的git repo驻留在本地磁盘上.