我使用git遇到了很多问题(也是,我是个新手)。很多时候,当我尝试git push时,我遇到了错误。见下文:
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (5/5), 6.03 KiB | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
remote: error: insufficient permission for adding an object to repository database ./objects
remote: fatal: failed to write object
error: unpack failed: unpack-objects abnormal exit
To /Volumes/batcave/sourceControl/x.git
! [remote rejected] master -> master (unpacker error)
error: failed to push some refs to '/Volumes/batcave/sourceControl/x.git'
关于这个的奇怪部分是我输入:
git reset --hard origin/master
然后
emacs testfile.txt
并在testfile.txt中输入文本,然后执行常规操作:
git add .
git commit -a -m"added testfile.txt"
git push
推动工作。所以我不买它是因为我没有得到适当的许可。此外,有时如果我只是打开文件,我在推送emacs和添加和删除一些返回时遇到问题,那么它的工作原理。
有关详细信息,我正在使用git存储库来保持我的台式机和Mac笔记本电脑同步。
答案 0 :(得分:2)
您正在跨系统的权限模型与看似已挂载的文件系统。当系统与Mac OS和Windows不同时,这是不可取的。在推动时,您正在编写新文件并修改索引。通过访问通过共享,您可能会尝试将这些操作作为不同的权限用户。相反,您应该在两个系统之间使用网络协议,以便始终从相同的上下文执行文件操作。
如果代码是你无论如何都不介意公开,最快的方法是使用现有的免费git服务器,如github。两个系统都会从主机上拉出来。这是我的建议。
否则,选择一个系统作为您的"服务器"并在两个系统之间设置基于SSH密钥的身份验证,以便 git protocol 用于访问。实质上,这意味着客户端系统应该访问服务器作为拥有repo文件的user @ server。 (也可能,虽然可能没有必要将两个对称设置为彼此对齐,以便两者都可以推或拉,使用双方的SSH authorized_keys。)