Articles of git

Gitlab使用HTTPS的git克隆 – 无法获得本地发行者证书

当我使用git clone https://my.example.com/gitlab/java/repository.git ,我得到了 克隆到“存储库”… 致命:无法访问“ https://my.example.com/gitlab/java/repository.git ”: SSL证书问题:无法获得本地发行者证书 如果我设置git config –global http.sslVerify false它工作正常 Gitlab与Apache2和SSL一起使用,并转发给gitlab-workhorse。 有关configuration的更多详细信息: 存储库克隆的Gitlab HTTPS URI不起作用 – 无法validationSSL主机 – 致命:无法访问 我已经尝试添加SSL证书,因为它们与Apacheconfiguration中的相同,但是没有帮助: nginx ['ssl_certificate'] =“/etc/gitlab/ssl/my.example.com.crt” nginx ['ssl_certificate_key'] =“/etc/gitlab/ssl/my.example.com.key” 如何将其configuration为通过HTTPS进行git操作而不禁用validation?

Git污染环境?

有一个相当基本的VPS灯,fail2ban等Git安装和 set > dump.me 给了我一个约50个variables的环境文件,然后地狱打破。 看起来像一个git脚本已经find了对环境的方式导致dumpkme 120kB! 在“正常”声明之后,永不结束如: …. __git_ps1_colorize_gitstring () { if [[ -n ${ZSH_VERSION-} ]]; then local c_red='%F{red}'; local c_green='%F{green}'; local c_lblue='%F{blue}'; local c_clear='%f'; else local c_red='\[\e[31m\]'; local c_green='\[\e[32m\]'; local c_lblue='\[\e[1;34m\]'; local c_clear='\[\e[0m\]'; fi; local bad_color=$c_red; local ok_color=$c_green; local flags_color="$c_lblue"; local branch_color=""; if [ $detached = no ]; then branch_color="$ok_color"; else branch_color="$bad_color"; fi; […]

gitlab Webhook触发生产.phpurl从主分支拉文件 – 它是安全和正确的?

这是我第一次探索从gitlab到生产服务器(数字海洋)的webhook&autodeploy, 当我从本地机器推送文件时,我会在webhook上触发一个url( http://example.com/git/hook/pull-master.php )。 以下是pull-master.php的代码: $cmd = "git pull https://usr:[email protected]/johndoe/project.git master"; echo shell_exec($cmd); 我可否知道 以上autodeploy方法安全吗? 生产服务器可以.git文件夹? 假设项目目录在.git中大约。 100MB〜500MB 以上autodeploy方法安全吗? 这是开发人员如何自动部署代码到他们的分段/生产服务器的常用方式?

使用哪个版本控制系统?

我不太确定这个问题是否属于这里,但无论如何,我会问,我的问题是,我需要一个版本控制系统,用户将在网上使用(在浏览器上)来修改和提交代码块, 我当然知道git,我知道它能够处理它(当然,我需要一个相当复杂的API层),但是,它真的是正确的工具吗? 用户能够得到存储库中内容的感觉列表,具有相应的版本ID或者至less最新的版本。 用户能够获得所有模块版本的列表。 用户可以创build新的模块。 用户能够对模块进行更新请求。 用户(哪些特权)能够接受更新请求,从而创build新版本。 在这个更新版本后面的用户能够获得他的新版本不是基于新版本的数据,并且应该(可能)修复。 用户可以将草稿保存在正在处理的内容中,以便以后继续使用。 用户能够看到他们所有的贡献。 用户可以看到正在进行的所有工作。 外部服务器能够看到用户的所有贡献。 外部服务器能够获取任何文件的任何版本。 一个外部服务器能够得到一个真正全面的服务器中有什么版本id的列表来检查是否有什么改变(基于这个build立网站本身) 外部服务器可能能够标记更新(它们是否为特定语言的生产就绪)并对其进行search(可选我可以将其数据库) 我需要,或多或less没有别的; 我不想重蹈覆辙,我认为可以基于现有的工具构build一些东西,我不知道哪一个最适合,因为我一直使用git。 我不太确定它是否可以做到这一点。

systemd下的git-daemon:base-path不存在或不是目录

我试图使用git-daemon通过git propocol启用对我的托pipeGitLab服务器的访问。 如果我从命令行运行git-daemon,它按预期工作: $ /usr/libexec/git-core/git-daemon –export-all –base-path=/var/opt/gitlab/git-data/repositories –syslog –verbose $ git ls-remote git://localhost/cm/test_project.git 9cbff8accfa291ffeb8189f114c6d290a3856511 HEAD 2817d289674481ef02f05c3558063a5239d844b2 refs/heads/develop2 9cbff8accfa291ffeb8189f114c6d290a3856511 refs/heads/master bce85bd749a69cb127bdb0e64c173e926eb77cbc refs/heads/old-master $ 但是,如果我以systemd单元运行git-daemon ,我得到以下错误: $ git ls-remote git://localhost/cm/test_project.git fatal: read error: Connection reset by peer $ 并在日志中: git-daemon[19089]: base-path '/var/opt/gitlab/git-data/repositories' does not exist or is not a directory 我有以下设置: 混帐daemon.socket: $ cat /etc/systemd/system/git-daemon.socket [Unit] Description=Git […]

与Apache身份validation不起作用的git-http-backend

我想通过Apache使用git-http-backend。 我想要一个公共可读的存储库,但是一些authentication用户可能会推送。 我有以下configuration: SetEnv GIT_PROJECT_ROOT /home/username/git SetEnv GIT_HTTP_EXPORT_ALL SetEnv REMOTE_USER $REDIRECT_REMOTE_USER ScriptAlias /git/ /usr/lib/git-core/git-http-backend/ RewriteCond %{QUERY_STRING} service=git-receive-pack [OR] RewriteCond %{REQUEST_URI} /git-receive-pack$ RewriteRule ^/git/ – [E=AUTHREQUIRED:yes] <LocationMatch "^/git/"> Order Deny,Allow Deny from env=AUTHREQUIRED AuthType Basic AuthName "Git Access" AuthUserFile /home/username/.htpasswd AuthGroupFile /home/username/.htgroup Require group committers Satisfy Any </LocationMatch> 我的存储库可以被匿名克隆,但是在推送过程中没有进行身份validation,任何人似乎都可以推送到回购站。 我试图启用http.recievepack在回购false ,但然后甚至克隆失败,403错误。 我如何解决这个问题?

在复制的VM中,Git推送失败 – 难倒了

我一直在一个系统上的linux虚拟机上编写代码库,并且已经能够使用git在远程仓库上成功克隆/拉/推。 我将这个虚拟机导出并复制到了另一个物理系统,并对分支做了一些更改,但是我无法将其推送到远程。 我仔细检查ssh-agent,确保正确的密钥已加载,但没有任何工作。 错误是 连接由nnn.nnn.nn.nnn端口22closures 致命的:无法从远程存储库读取。 请确保您拥有正确的访问权限 并存在存储库。

最好的方式来迁移Git仓库(不中断开发团队)?

所以我有一个开发团队正在使用的EC2实例的存储库(在Stash中)。 我得到了指示,我们正在摆脱藏匿和移动到Github。 我试图找出最佳路线,以便我不打断开发团队。 我想我可以在Github上设置一个新的回购站,并且用Stash的所有内容做一个初始提交,然后我相信我将不得不login到EC2实例并更改远程,以便回购站点指向Github而不是隐藏? 从那时起,开发团队未来的任何承诺都将被发送到Github,而不是Stash(我认为)。 我对如何去做这件事有点模糊,并想知道我上面提出的build议是可行的,还是有更干净的方法来做到这一点? git远程设置url来源https://github.com/USERNAME/CLONED_REPO.git

Git – 什么导致“警告:负面模式在git属性中被忽略”

当推我的服务器post-receive挂钩运行一个git clone命令。 该命令返回以下警告,我不知道它是什么意思或如何解决它。 谷歌search错误只给出了关于gitattributes的结果,我还没有configuration任何属性。 我的.gitignore文件里面也没有感叹号或负值。 remote: Cloning into '/var/www/html/gitrep'… remote: warning: Negative patterns are ignored in git attributes remote: Use '\!' for literal leading exclamation.

Github如何知道哪个用户提交了?

我正在尝试为我的gitolite服务器写一个GUI。 我的计划是创build一个钩子,然后将git log写入数据库或文件。 然后一个PHP文件可以读取这个数据,并像Github上的networking一样显示它。 我现在的问题是如何知道哪个用户已经提交了? 因为如果他的git电子邮件不同,那么我的服务器数据库中的电子邮件我无法识别用户。 你对这个问题有什么build议吗? 有没有更好的方式来获取所有提交比git log ?