标签: git

Git裸仓库的Linux用户组配置

我使用 Ubuntu 盒子来托管我的裸 Git 存储库,供开发人员使用。

目前,我正在为盒子上的每个开发人员创建一个用户帐户,因为它兼作文件存储和本地测试服务器。

当有人推送到裸存储库时,其他开发人员无法处理对象文件夹中发生更改的文件。新文件是由推送的开发人员的用户创建的。

我已将所有开发人员放入一个开发组,但 umask 不允许该组进行编辑。

我从未设置过 Git 存储库,因此没有使用权限的经验。我确实希望每个开发人员在测试服务器上拥有自己的用户帐户,并且我希望他们使用该帐户在服务器上执行操作。我不介意给他们 sudo 权限。

为每个开发人员设置 umask 是前进的方向吗?

linux permissions git groups

4
推荐指数
1
解决办法
1万
查看次数

Jenkins 从 Bonobo Git 服务器拉取

我已经安装

  • 詹金斯
  • Jenkins 上 SCM 的 Git 插件
  • Bonobo Git 服务器

要将 Jenkins 配置为从 Git 构建,我输入位于本地网络上的 url,http://devserv/Bonobo.Git.Server/<reponame>.git然后我先输入用户名和密码,然后收到此错误消息:

Failed to connect to repository : Could not init C:\Windows\TEMP\hudson8497551621296692258tmp
Run Code Online (Sandbox Code Playgroud)

我曾尝试访问该文件夹并授予每个人对其的完全访问权限,只是为了进行测试,但没有帮助。

有任何想法吗?

windows .net git jenkins

4
推荐指数
1
解决办法
4636
查看次数

多个存储库的 git 守护进程和访问控制

这是情况,我有一个名为 git 的文件夹,其中包含各种 --bare git 存储库。这是在我的服务器上,它是 CentOS 5。我家里的个人电脑是 Windows XP。

我想使用基于每个存储库的帐户将我的本地存储库推送到我的服务器。我一直在寻找几个小时没有运气。这是我所做的最接近的。

我通过键入以下内容在我的服务器上运行了一个守护进程:

git daemon --verbose --base-path=/path/to/git/parent/folder --export-all
Run Code Online (Sandbox Code Playgroud)

然后我使用 TortoiseGit 推送地址: git://myserver.com/project 并且我从守护进程中得到这个:

来自 XX.XX.XX.XX 的连接扩展
属性(22 字节)存在
请求
接收包为“/project”
“receive-pack”:服务未
为“/path/to/git/parent/project”
[XXXX]启用断开连接(有错误)

我使用 --enable=receive-pack 并成功地将我的本地存储库推送到服务器,但结果不是我想要的:即以用户身份登录。Receive-pack 使每个人都可以匿名推送到服务器。

我已经搜索了几个小时,但找不到如何为每个存储库独立配置帐户。我已经阅读了各种关于 SSH 的文章,但我不确定这是否是我想要的。据我所知,SSH 是通过在服务器上登录一个 linux 帐户(即 root、userA 等)来安全地连接到我的服务器,而这不是我想要的。

以 SVN 为例,通过 subversion,您可以使用您想要的帐户创建一个 .htpasswd 文件,仅用于该特定存储库。Git有类似的方法吗?

谢谢你。

git

3
推荐指数
1
解决办法
6371
查看次数

如何使用 git 和 github 在开发服务器上设置多用户

我正在研究灯应用。我们有 2 台服务器 (Debian) Live 和 Dev。

我经常在 dev main 上工作以添加新功能并修复错误。
当一切顺利时,我将相关代码 scp 到 Live 系统。数据库 (mysql) 对每台机器都是本地的。

现在这是非常基本的设置,我想稍微改进一下工作流程。我使用 git 和 github 进行版本控制。不可否认,我只真正使用过一个分支。他们可以是 3 位不同的开发人员,他们在不同的时间处理代码。我们都使用相同的 linux 用户名连接到开发服务器并在需要时直接编辑代码。我通常会在一天结束时提交并将代码推送到 github。

要记住的一件事是,在本地机器上运行此代码并不容易,因为有许多 apache 和子域配置无法在本地机器上运行,因此在开发服务器上而不是在本地运行很重要。

我需要创建一个新进程,因为我们现在需要有一个主干和一个重写大量代码的分支。

做这个的最好方式是什么。我应该为每个开发人员创建不同的 unix 登录名并在开发服务器上设置不同的工作区域以进行更改吗?例如

/var/www/mysite_derek /var/www/mysite_paul /var/www/mysite_mike

我的想法是他们可以从主分支拉取,然后在那里创建自己的分支并将其合并回来。我不确定这将如何与本地 git 和 github 一起工作。

我是否还需要创建不同的 github 用户帐户。

我想以“正确”的方式和未来的证据来做这件事,因为有很多潜在的开发人员,但我也不想让它复杂化。I 简洁优雅的解决方案是首选。

有什么建议或建议吗?

git github

3
推荐指数
1
解决办法
2212
查看次数

Ubuntu-server:gitosis 用户命名约定

如果您gitosis通过 apt-get 在 ubuntu-server 10.10 上安装:

sudo apt-get install gitosis

安装后脚本将创建一个新gitosis用户。

该用户将用于允许人们使用公钥连接 SSH。也就是说,无需每个用户在您的服务器上拥有自己的帐户:

git clone gitosis@server.com:project.git
git remote add origin gitosis@server.com:project.git

到现在为止还挺好。但:

我见过很多次,我个人更喜欢使用git用户名:

git clone git@server.com:project.git
git remote add origin git@server.com:project.git

  1. 我们有什么理由使用gitosis而不是简单地git在 ubuntu-server 上使用?
  2. 我应该避免将gitosis用户重命名为gitsudo usermod -l git gitosis

欢迎任何想法

ubuntu ssh git ubuntu-10.10

3
推荐指数
1
解决办法
4878
查看次数

git阻止推送到主人

这是我第一次设置 git 服务器,所以我真的不知道我在做什么。无论如何,我有一个用户的 git 服务器设置,我想要的是有多个开发人员可以创建自己的分支并将分支推送到原点,但我不希望他们推送任何东西来掌握;管理员将在代码审查后合并。那可能吗?

git

3
推荐指数
2
解决办法
1万
查看次数

别名“git”ssh 登录到“gitolite”

我正在为我的客户端从 CentOS 软件包安装gitolite。该包创建了一个gitolite用户,该用户将在“git clone”操作期间显式可见。客户想要使用“git”而不是“gitolite”,以防我们以后改用更花哨的东西。我对 CentOS 不是很熟悉,所以我不想尝试从源代码自己构建包。我想知道是否有办法执行以下操作之一:

  1. 欺骗 sshd 将“git”视为“gitolite”。
  2. 以某种方式“别名”一个新的 git 用户名在所有方面都与现有的 gitolite 用户名相同(也许通过 useradd 的一些复杂组合)。
  3. 将“gitolite”用户名重命名为“git”而不影响后续yum update操作
  4. 我没有想到的其他事情

我很感激详细的说明或指示。

ssh centos git gitolite

3
推荐指数
1
解决办法
1160
查看次数

运行 sudo -H -u 的 ec2-user 密码

我必须运行这个命令来初始化gitosis

sudo -H -u git gitosis-init < /home/ec2-user/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

但这要求我输入 ec2-user 的密码:

$ sudo -H -u git gitosis-init < id_rsa.pub
[sudo] password for ec2-user: 
Run Code Online (Sandbox Code Playgroud)

我没有密码,因为我使用默认的 .pem 密钥文件登录。

我知道我可以以 git 用户身份登录并执行此操作,但是还有其他方法吗?

更新:

使用 Linux AMI 12.09(微实例),在区域 us-east-1(弗吉尼亚北部)

password sudo git amazon-ec2

3
推荐指数
1
解决办法
5718
查看次数

SSH 到 bitbucket 返回权限被拒绝(公钥)

所以我试图将一个 repo 克隆到我的 Ubuntu 服务器上的目录,但我不断收到 Permission Denied (publickey) 错误。

这很奇怪,因为我的输出ssh -T git@bitbucket.org显示成功:

mo@li515-148:/var/www$ ssh -T git@bitbucket.org
conq: logged in as msamman.

You can use git or hg to connect to Bitbucket. Shell access is disabled.
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试克隆时,出现错误:

mo@li515-148:/var/www$ sudo git clone git@bitbucket.org:username/website-development.git
Cloning into 'website-development'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

这是详细的输出:

mo@li515-148:/var/www$ ssh -v git@bitbucket.org
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for …
Run Code Online (Sandbox Code Playgroud)

ssh putty git public-key ubuntu-12.04

3
推荐指数
1
解决办法
1万
查看次数

Git clone 工作正常,但 git push 不行

我在 Git 服务器上创建了一个测试 git repo:

/var/cache/git/username/myGitRepo.git
Run Code Online (Sandbox Code Playgroud)

这是一个“裸”的git repo。文件的所有权属于这个“用户名”用户。我可以在另一台 Windows 机器上克隆上面的 Git 存储库。

git clone git://myhost/var/cache/git/username/myGitRepo.git
Run Code Online (Sandbox Code Playgroud)

回购正确克隆。然后我可以进行本地提交并尝试将更改推送回我的 Git 服务器:

git push origin master
Run Code Online (Sandbox Code Playgroud)

但这会在服务器上出现权限错误:

fatal: remote error: access denied or repository not exported: /git/username/myGitRepo.git
Run Code Online (Sandbox Code Playgroud)

git-daemon-export-ok在 repo 目录中添加了魔法文件 ' ' 文件。但我不断收到上述错误。

我甚至设置chmod777/var/cache/git/username/myGitRepo.git

得到同样的错误。

Git remote -v 抛出以下输出。

$ git remote -v
origin  git://myhost/git/username/myGitRepo.git (fetch)
origin  git://myhost/git/username/myGitRepo.git (push)
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮助我解决此错误?

git

3
推荐指数
1
解决办法
3万
查看次数