Questions tagged «git»

使用此标签可解决有关Git(一种免费和开源的分布式版本控制系统)的问题,该问题与将Git用于诸如持续交付,监视,构建SDLC基础结构等主题有关。

4
在哪里放置ansible-Vault密码
我们计划在项目中使用ansible保管库,以防止git中的密码或密钥泄漏。 想法是将所有敏感数据放入一个普通文件中,然后在推送到git之前使用密码使用ansible-vault对该文件进行加密。 要解密文件,我们必须将Vault密码传递给ansible,我正在考虑3种可能性: 将其存储在服务器环境变量中 将其作为选项传递给ansible-playbook命令 将其存储到未版本控制的文件中。 是否还有其他选择,这是存储ansible-Vault密码的最佳(和安全)方法,而ansible最佳做法文档对此没有说明。

1
Git清理/涂抹过滤器以获取可疑的Vault机密
我正在尝试在git中设置清理/涂抹过滤器,以通过ansible-vault命令对包含机密的文件进行自动加密和解密。 ansible-vault命令的特殊之处在于它不是幂等的(每次在同一数据上调用它都会创建一个不同的二进制文件)。 我从此博客页面建议的实现开始。不幸的是,它无法正常工作,因为每当调用smudge(无论是git checkout还是git status)时,秘密文件的git看起来都是经过修改的,即使不是。 所以我想知道git是否会将他在索引中的二进制文件与干净的过滤后的当前文件进行比较,因此我尝试构建如下的脚本: #!/bin/sh -x # clean filter, it is invoked with %f if [ ! -r "$HOME/.vault_password" ]; then exit 1 fi tmp=`mktemp` cat > $tmp # get the plain text from the binary in the index tmphead=`mktemp` git show HEAD:$1 > $tmphead contenthead=`echo "embedded" | …

4
如何摆脱开发分支以简化Git流
在一个持续开发的Web项目(不是产品)中,我们目前具有以下分支策略,大致基于git flow: 开发分支:最新工作版本 主分支:要发布的版本/已发布的版本 功能分支:开发中的功能 修补程序分支:已发布版本中的紧急错误修复 Master是只读的,可以通过来自develop或hotfix分支的拉取请求进行更新。每次更新都会构建候选发布版本并将其部署到登台系统。手动批准后,候选发布版将部署到生产中。 功能分支是基于develop或已合并到master的最后一次提交创建的。构建了来自功能分支以进行开发的拉取请求,并将其部署到免费的测试系统中,在该系统中执行集成测试和验收测试(自动和手动)。成功测试和审查后,PR就会合并,因此它将成为下一个版本的一部分(即从开发到母版合并)。 我的目标 我想简化此过程,并摆脱开发分支。developer分支主要是出于历史原因,并且由于它始终是经过成功测试的版本,因此我认为不必将其与master分开。删除它还将简化发布过程,因为不再有其他合并。 我有以下限制: 版本已排定,不应完全自动化 虽然功能分支通常寿命很短,但有些分支未合并数周(例如,重新设计),但也需要进行测试(当前是针对开放拉取请求的开发) 有时,应该在常规版本之外发布单个功能,从而有效地将其转变为修补程序。使用当前策略,我可以重新建立功能分支的基础并将其直接合并到主分支中 也有发生,我们需要在对外部系统进行暂存测试失败后保留功能 我不确定转换的地方: 目前,我正在构建请求测试以合并发布的提交。我可以统一一下吗? 当母版领先于最新版本时,如何处理修补程序。我应该直接从修补程序分支构建和部署发行版吗? 有没有明智的方法来处理在合并功能后就应从发行版中排除的功能?在这些情况下,单独的开发部门真的是一个优势吗?大多数情况下,无论如何我最终还是要手动还原和还原提交。


3
从Git获取单个修订版
在开发过程中,拥有完整的Git修订历史记录会有很多好处。 但是我们的产品是源代码,我们使用的脚本语言不需要编译或处理,因此Git历史记录成为部署的负担-在我们的示例中,我们在每次更改后都部署了一个干净的虚拟环境,并在其中进行了多次部署一台机器。 有一些方法可以减少历史记录的数量,例如,浅克隆,其效率取决于分支中修订的深度,执行提取操作而不是克隆,但仍然可以从修订中获取历史记录,或者获取完整的历史记录。回购一次,然后在需要时拉回,但是这在磁盘空间方面是浪费的,并且可靠性较差。 有没有没有历史的Git可以得到一个修订版本的方法?
14 git 

3
您如何执行git行为,包括本地(特别是在Windows上)?
我正在把这个.NET商店从svn转移到git,并指出了一些我想解决的辅助问题,然后再进行切换。 我特别要问的一个问题是行尾强制执行。默认情况下,用于Windows的git使用“ checkout crlf,commit lf”安装,对于一堆仅由crlf结尾组成的源(据我所知),它不起作用。 我不知道我会盲目地信任任何给定的开发人员即使在给定指令的情况下也能正确配置此功能,因此我正在考虑以下一项(或两项),但很好奇这里是否有人走了另一条路。 一个预提交钩子,用于检查是否有任何lf行的结尾(或可能是所有lf行的结尾),并在该事件中拒绝。 分发给开发人员的安装脚本,使用“原样,原样”填充全局配置。 PS在撰写本文时,我想到从svn到git的初始转换可以采用默认方式,而且只要人们坚持使用默认值,那么转换也将是无缝的。曾经是.NET商店中使用git的开发人员,并且安装了非默认的“按原样,按原样”的git,所以我也在那里创建了自己的问题(他们在到达之前就已滚动默认值) 。所以我仍然倾向于某种执行机制。
13 git  scm  windows 

2
是否可以使用Travis CI和GitHub自动部署特定分支中的每个提交?
我想使用Travis CI部署文件,它仅适用于带标记的提交。提交到分支时,会出现警告: 使用发布提供者跳过部署,因为这不是带标记的提交。 是否可以使用Travis CI在分支提交上进行部署? 为了澄清起见,当我标记提交时它可以工作,但是我想在给定分支的每次提交上部署文件。

4
如何在代码存储库中构建与DevOps相关的代码和配置?
作为一家公司,我们一直在发展,我们的产品也在扩展,与DevOps相关的活动和努力也在不断增长-我们已经使用部署管道和其他插件从Bamboo转变为更加灵活和可配置的Jenkins。切换到Ansible并开始在本地和本地使用Docker。 所有这些都需要一定程度的编码或配置-Ansible脚本和配置,Jenkins groovy脚本,Dockerfile和YAML配置。 现在,我们已经创建了一个独立的“OPS”资源库和高层次的目录jenkins,ansible,docker和other(这是一个可怕的名字,但现在所有的“其他”的DevOps自动化的东西在那里)。 我们的方法感觉不正确,可能无法扩展,但是将与DevOps相关的代码保留在一个或多个代码存储库中的最佳实践和建议是什么?

2
Git似乎可以识别来自.gitconfig的http.sslcainfo属性,但是在执行时会忽略它?SEC_E_UNTRUSTED_ROOT
总而言之,我有一个有效的证书链(可通过OpenSSL测试),但我无法以某种方式告诉Git加载这些证书。 我得到了同样的 “不信任的根证书颁发机构”的错误(SEC_E_UNTRUSTED_ROOT)独立是否我的git配置指向现有的或伪造的证书链文件。 有关详细信息,请检查随附的屏幕截图。 我.gitconfig用于伪造文件的设置: sslCAInfo = C:/tmp/foobar.crt 或者,对于与OpenSSL兼容的真实文件: sslCAInfo = C:/tmp/ca-bundle.crt 控制台成绩单: C:\tmp>openssl version OpenSSL 0.9.8h 28 May 2008 C:\tmp>git --version git version 2.12.2.windows.2 C:\tmp>git config --list http.sslverify=true http.sslcainfo=C:/tmp/ca-bundle.crt C:\tmp>dir 24.04.2017 13:45 10.875 ca-bundle.crt c:\tmp>openssl s_client -state -connect https://mygithost:443 -CAfile .\ca-bundle.crt Verify return code: 0 (ok) C:\tmp git clone …
10 git  windows  ssl 

2
Git&Jenkins:在分支上获取最新的绿色提交
我们刚刚开始争取使用CI-CD,作为一个小小的步骤,我们将尝试每隔几个小时使用最新的绿色开发更新堆栈。我对Git / Bitbucket相当陌生,无法弄清楚如何确保Jenkins进行的结帐将最后一次提交由Jenkins标记为绿色,而不仅仅是“最后一次提交”作为笼统的声明。 我们已经安装了Bitbucket Build Status Notifier插件,因此Bitbucket会在运行单元测试后跟踪哪些提交是绿色的。有没有办法利用此信息来确保选择正确的提交?
10 jenkins  git  bitbucket  bcbsn 

1
如何在合并时或删除分支时触发脚本?
我正在使用詹金斯多分支管道。如果分支被合并和删除,詹金斯也将从管道中删除该分支。 很好,但是我想在删除分支时运行命令/脚本,如何让詹金斯在删除分支时运行命令?有没有办法让詹金斯在删除分支之前触发作业? 编辑:我应该添加我正在使用bitbucket。如果詹金斯在清除多分支管道的分支时可以触发事件,那将是一件很整洁的事情。理想情况下,我的git提供者是什么都没有关系。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.