Articles of git

限制SSH访问只有一个回购

我在bitbucket上托pipe多个私人存储库。 我也可以访问一个私有存储库,我们把它称为repo1,在bitbucket上,这不是我的,但我们从服务器上拉它,我们称之为server1。 在bitbucket上,我已经授权访问我的帐户到server1,这意味着server1上的所有用户都可以从我的bitbucket帐户中获取任何回购。 我怎样才能防止这一点,让只有服务器拉repo1? 这有点紧急。 非常感谢你。

不能在git post-update hook中调用“git reset”?

我为我的网页设置了一个git仓库(这是简单的HTML,由Pandoc降价生成)。 版本库将仅由我进行远程更新,并已成功configuration为使用HTTPS。 现在,这不是一个纯粹的存储库 – 没有人会更新服务器上的本地存储库或工作树,所以我只是在那里保留一个工作副本,并使其可供Web服务器发布。 这一切工作正常, 但 – 我需要工作树自动更新每次我推动更改到服务器,所以我写了以下post-update脚本(在这个例子中,工作树在/path/git/me和/path/git/me/.git的存储库): #!/bin/bash (cd /path/git/me/ && echo "running git reset –hard on `pwd`" && git reset –hard) (cd /path/git/me/ && pandoc -s -o index.html index.md) 当我运行git push ,钩子被执行了,但是真的发生了一些奇怪的事情: git抱怨说'.' 不是一个仓库,不运行git reset –hard命令 然而,pandoc运行没有问题! 以下是推送的logging: $ GIT_TRACE=1 git push 12:21:12:21:27.088581 run-command.c:347 trace: run_command: 'git-remote-https' 'origin' 'https://server.org/git/me' Username for 'https://server.org': […]

系统configuration文件

我们的服务器有自己的configuration文件的各种服务。 Nginx,Dovecot,Postfix … 所有这些configuration文件都位于它们自己的/ etc / {service}目录中。 我试图将这些文件移动到一个中央位置,并添加一个符号链接。 就像: /etc/postfix/main.cf <- /root/server-config/postfix/main.cf 以上作品适用于大多数服务(Nginx,PHP,..)。 但是,某些与电子邮件相关的服务会给权限拒绝错误。 我已经尝试了许多不同的选项,如给更多的权限,符号链接和源文件,给予最大的权限(777),作为根运行,添加dovecot /后缀到根组。 我试过的所有选项都没有任何区别。 我们的主要目标是将所有的configuration文件放在一个git仓库中,并将它们推送到GitHub中,这样我们就可以在版本控制中使用它们。 我能做些什么来完成上述工作。 如果你有一个不能使用git或符号链接的替代方法,请将其添加为注释。

Git后挂钩挂

我有一个git post-receive hook,它构build了一个Go程序并运行它。 问题是我得到了Go程序的所有输出,并且git push “永不结束”执行,在那里被阻塞。 我正在寻找一种方法来运行Go程序而不挂上push命令。 我的收到后的文件: #!/bin/bash while read oldrev newrev ref do branch=`echo $ref | cut -d/ -f3` if [ "production" == "$branch" -o "master" == "$branch" ]; then … go build exec ./webservice echo 'Pushed!' fi done

在Windows server 2012上为开发人员安装Git Server。 球队。 SSH服务器是强制的吗?

我想为我的开发团队在Windows Server 2012上安装git服务器。 在一些教程中,我读了一个SSH服务器是需要的。 这是强制性的吗?

Windows Server 2008上的Cygwin,OpenSSH和Gitosis

我花了几个小时让Cygwin,OpenSSH和Gitosis在Windows Server 2008 x64上一起工作 – 不幸的是网上的教程(例如来自Shannon Cornish)似乎没有解决我的问题。 我得到以下试图通过SSHlogin到我的“混帐”用户或尝试通过“git clone git(at)localhost:gitosis-admin.git”来检出存储库 [main] sshd 9364 C:\cygwin\usr\sbin\sshd.exe: *** fatal error – could not load user32, Win32 error 1114 fatal: The remote end hung up unexpectedly 我发现了一些暗示,我必须设置有关用户令牌的多组策略 – 但是这样做也没有帮助…

如何设置安全半公开修订控制系统

我有一个configuration了版本控制系统的项目的Windows服务器。 假设是GIT或者SVN或者….假设全球有10个人在这个项目上工作。 首先想到的是用SSH保证这些程序员和服务器之间的连接。 但我的问题是,一个黑客可以摧毁服务器,如果他获得SSH用户名和密码的用户帐户(告诉我,如果我错了)。 所以我需要一个安全的方式让程序员把他们的修改版本推送到服务器上。 任何想法都可爱

使用GIT进行备份。 如何永久删除旧版本中删除的文件?

我正在使用git来保留所有的网站在这里备份。 它工作的很好,我可以用一个命令跳入和退出一个特定的备份。 问题是,这是增量式的。 即使我现在排除一个文件,它仍旧会在旧版本中。 这很好,但是有一些大文件,比如sql备份,我不需要保留所有的历史logging。 当我每天备份我的数据库时,使用不同的文件名,我的空间不足= p 我怎样才能从我的git仓库永久删除旧的/删除的文件?

通过https的Git

当我用git clone https://[email protected]/directory克隆一个repo,或者当我用git push origin master Git要我input密码,我怎么能自动提供密码,比如ssh密钥? 所以它不要求我的密码了? 我需要这个有两个原因: 1)自动化,哈德森例如 2)我懒得自己每次都提供它 第二个问题(与第一个问题有关) 为什么有时候会要求密码两次?

版本控制具有不同家庭名称的configuration文件?

我最近决定使用版本控制系统在我的不同的Linux安装之间共享我的configuration文件。 在阅读了另一个关于这个主题的post之后,我打算用git来做。 我会把我的/ under修订控制与顶级.gitignore设置为*并手动添加我想跟踪的每个configuration文件(主要是从/etc/…文件)。 我不明白,是我如何处理不同的主目录。 举例来说,在机器AI上有/home/foo/.vimrc和在机器B上/home/bar/.vimrc ,我怎么能让git保持这两个文件在同一个版本控制仓库下? [更新] 我正在寻找一个非常轻量级的解决scheme,只是我需要(例如没有木偶或Cfengine)。 我正在考虑在/home/whatever/中创build一个.config文件夹,在这个文件夹中我将使用git存储库保留所有重要的configuration文件。 一个非常简单的脚本就可以从我的/etc/ , ~/… /etc/创build所需的符号链接。 还有其他build议吗?