繁体   English   中英

在Ubuntu上设置本地git存储库

[英]Setting up a local git repository on Ubuntu

我正在尝试在本地计算机上设置一个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_repo作为git用户,我执行以下操作:

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 在此设置中我在做什么错?

不要做所有花哨的权限操作。 你想要乙醇钠

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

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吗?

有什么建议么?

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

我被困在同一点。 到目前为止,“出了点问题”不是很有帮助。 在比较了几十个标题为“ howtos”的“小菜一碟”之后,我找出了主要问题。 大多数示例在同一主机上具有客户端和服务器。 那不是我想要的 在编辑〜/ .ssh / config后,如下所示的方式像一个超级按钮一样起作用。

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

的〜/ .ssh /配置

Host gitolite
        User git
        Hostname gitolite
        Port 22
        IdentityFile ~/.ssh/harrie

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM