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

时间:2014-02-28 18:05:18

标签: git github mount atlassian-sourcetree

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

问题是我添加到我的设置中的新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。

2 个答案:

答案 0 :(得分:5)

一般来说是git。 This answer表示,这是因为文件锁定。有关更多信息,请搜索SO以获取“git samba”

根据我的经验,在网络驱动器上使用非裸存储库进行操作是一个坏主意。

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

所以:

  1. 在NAS上设置SSH服务器并推送/拉到
  2. 映射您的网络共享(就像您现在一样),但对其进行了简单的回购。然后,推/拉到那个。
  3. 在任何情况下,建议带有工作副本的git repo驻留在本地磁盘上。

答案 1 :(得分:1)

经过大量的浪费时间后,我遇到了以下解决方案:

在Synology NAS服务器上:

控制面板 - >文件共享和权限 - > Win / Mac / NFS - > Mac文件服务 - >应用默认Unix权限 - 选中此框并重新启动文件服务。

红色鲱鱼 - 我试过的东西它没用。

a)将Git设置从使用NAS系统直接更改为通过ssh使用Git Server。 b)使用/不使用Sourcetree进行git访问 c)可能还有十几件事。

请注意,问题与Git设置无关,而是与检出的目录位置有关。如果没有选中上面的方框,我甚至无法通过终端更改索引文件的权限或所有权 - 尽管我应该通过SSH来完成。

Robert Ramey