2

我正在尝试在我的本地机器上设置一个 Git 存储库,用于在我的本地机器上完成的工作 - 没有远程任何东西。

我已经多次设置远程存储库,但似乎我在本地采取的步骤总是以错误告终。

我有 2 个目录: /home/rico/project/home/git/project_repo

我创建了 git 用户来管理我所有的 git 存储库(我希望有几十个)。

作为用户/home/rico/projectrico我执行以下命令:

rico@verbal:~/project$ git init
Initialized empty Git repository in /home/rico/project/.git/

作为用户/home/git/project_repogit我执行以下操作:

git@verbal:~/project_repo$ git --bare init
Initialized empty Git repository in /home/git/project_repo

现在我回到我的项目并添加文件。

rico@verbal:~/project$ git status
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       .project
#       .pydevproject
#       inc/
#       manage.py
#       rocksolidbox/
#       rsb/
#       templates/
rico@verbal:~/project$ git add inc media rocksolidbox/ rsb/ templates/
rico@verbal:~/project$ git commit -a -m "Initialize the project."

在这一点上,我得到了正常的提交消息 -23 files changed, 989 insertions(+)等等。

现在,我想把它推送到project_repo文件夹中。

rico@verbal:~/project$ git remote add origin /home/git/rocksolidbox/
rico@verbal:~/project$ git push -u /home/git/rocksolidbox/ master

但收到以下错误:

Counting objects: 31, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (26/26), done.
error: insufficient permission for adding an object to repository database ./objects

fatal: failed to write object
Writing objects: 100% (31/31), 12.24 KiB, done.
Total 31 (delta 2), reused 0 (delta 0)
error: unpack failed: unpack-objects abnormal exit
To /home/git/project_repo/
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to '/home/git/project_repo/'

显然这是一个权限错误。我试图做这样的推动:

rico@verbal:~/project$ git push -u git@verbal:/home/git/rocksolidbox/ master

甚至使用我的本地 IP:

rico@verbal:~/project$ git push -u git@192.168.1.101:/home/git/rocksolidbox/ master

它要求输入密码,我知道我提供的密码正确,并且我不断收到消息Permission denied, please try again.

我只是希望能够将我推project到我的project_repo. 我在这个设置中做错了什么?

4

3 回答 3

1

不要做所有花哨的权限步法。你想要gitolite

于 2012-10-14T18:06:33.677 回答
0

好的,我已经找到了解决权限问题的方法。基本上这样做:

git@verbal:~/$ chmod -R 777 project_repo

然后我可以用我的执行以下命令project

rico@verbal:~/project$ git remote add origin /home/git/project_repo/
rico@verbal:~/project$ git push -u /home/git/project_repo/ master

然后将项目克隆到其他地方,只需执行以下操作:

rico@verbal:~/some_other_location$ git clone /home/git/project_repo

而你是金色的。

现在,我的问题仍然存在……这是处理权限问题的最佳方式吗?我真的不喜欢给予777任何东西的想法。我应该把gitrico放在同一个组中而775不是做吗?

有什么建议么?

EDIT1:将gitrico放在同一个组中并775没有帮助。它可以正常工作,777但我不喜欢这个解决方案。

于 2012-10-14T17:52:19.983 回答
0

我被困在同一点上。到目前为止,“出了点问题”的信息量不是很大。在比较了几十个标题为“小菜一碟”的howtos之后,我发现了主要问题。大多数示例在同一主机上具有客户端和服务器。那不是我想要的。编辑 ~/.ssh/config 后,下面显示的方式就像一个魅力。

对于这个例子,服务器主机称为gitolite,在服务器上安装 gitolite 的专用帐户称为git,客户端上的用户名为harrie,/home/harrie/.ssh 中的密钥对由“ssh- keygen-t rsa -f harrie”。

~/.ssh/config

Host gitolite
        User git
        Hostname gitolite
        Port 22
        IdentityFile ~/.ssh/harrie
于 2013-01-24T11:39:12.583 回答