相关疑难解决方法(0)

推荐的测试和生产实例的git工作流程

虽然我已经使用git一段时间了,但我仍然认为自己是n00b,所以请不要对我太苛刻.

我将"公司"主机系统维护为两个不相同的副本.我们称之为测试和生产.大型机没有任何我(或许可能是你们中的任何一个)会认为是版本控制系统的东西,所以我在桌面上使用git来为我提供版本控制.以下是我当前工作流程的主要功能:

  • 桌面和大型机与FTP"同步".最后,无论是在大型机还是PC上编写的所有开发工作都会在git分支机构的PC上完成.

  • 我无法访问任何类型的"现代"部署技术,如Hudson

  • 我有两个主要的分支,称为Test和Prod.由于产品的(继承)结构,Test和Prod实例之间的代码存在许多差异.例如,所有显示面板都需要清楚地识别这是Test还是Prod,但是没有办法在单点配置它.

  • 我通常为特定的开发子项目创建其他分支.

  • 一般开发在Test分支上完成,具有多个提交.准备好后,将这些樱桃挑选到Prod上,标记有更改编号,并在批准后上传.

  • 幸运的是,紧急工作是在Prod分支上完成的,并且是挑选出来的.

  • 偶尔采摘樱桃需要手动合并.

我想改进这个工作流程.目前,我的存储库在两个分支上充满了并行相同的更改.

我想我更喜欢这样做(对于Test - > Prod):

  • 一旦开发准备就绪,在Prod的HEAD创建一个新的分支

  • 将这组开发更改折叠为新分支上的单个更改

  • 将这个新分支合并到Prod.请记住,他们的共同祖先是在使测试与Prod不同的变化之前

它似乎git rebase -i可以完成这项工作,但我必须承认这git rebase是我的脑桥asinorum,不知怎的,我已经设法弄乱了我的树多次.

所以我的问题是:

  1. 请在产品的限制范围内建议更好的方法.

  2. 如果我的首选方法可行,有人可以建议正确的参数git rebase -i吗?

git deployment workflow git-rebase

5
推荐指数
1
解决办法
1231
查看次数

想要 git post 接收钩子来进行新的提交和推送

在某些条件下,我希望我的 post-receive hook 负责更新 repo 本身中的版本文件。因此,假设我的存储库中有一个文件 version.txt,我希望 post 接收挂钩更新 version.txt 中的版本字符串。

这将意味着再次推动回购。这可能吗?

谢谢!

git push git-post-receive

5
推荐指数
1
解决办法
1140
查看次数

在“ export-subst”文件中添加标签

情况

我们有一个git工作流程,其中所有发行版本都存储在master分支上,并且当准备好提交可以部署时,我们向其添加标签,然后用于git archive构建要部署的捆绑包。

我们使用带有选项version.txt标记的文件来跟踪用于构建给定存档的提交。.gitattributesexport-subst

题

如果我写$Format:%d$的version.txt,和导出标签的提交,我会像(HEAD, tag, master)写生成的文件英寸

我怎么能tag独自一人?

[edit]有一个git命令已经产生了:

git describe --tags HEAD
Run Code Online (Sandbox Code Playgroud)

这将输出:

latest_tag            #if HEAD is tagged

latest_tag-5-g03cc91b #if HEAD is not tagged,
                      #and the latest tag is 5 commits ago on commit g03cc91b
Run Code Online (Sandbox Code Playgroud)

有什么方法可以用此输出替换段塞version.txt吗?

git

5
推荐指数
1
解决办法
1450
查看次数

有什么办法可以把我的钩子放到 github 仓库上吗?

我可以实现它,以便在从 github 拉取存储库后,钩子已经存在于.git/hooks目录中吗?

hook github

5
推荐指数
1
解决办法
2867
查看次数

Git:防止暂存某些文件,自动暂存所有文件

我想取消暂存当前工作副本中的所有内容,但会自动暂存我将来编辑的所有文件和大块。

例如,我使用的 CocoaPods 版本与我正在从事的项目中的大多数其他人不同。我想升级配置文件的配置以与我的 CocoaPods 兼容,而不会破坏他们的。最简单的方法是不在拉取请求中包含新配置,但这意味着我无法构建。隐藏和弹出将不起作用,因为如果我在编辑配置后隐藏然后应用我的更改,弹出将修复配置但撤消我的更改。

我应该如何解决这个问题?

git git-stash git-stage

5
推荐指数
1
解决办法
1422
查看次数

是否有可能以满足Github和Doxygen的方式编写Markdown链接?

我项目的当前目录结构是<ProjectRooot>/wiki,目录中有三个Markdown文件wiki.

其中一个链接到另外两个,我尝试了两种编写链接的方法.

第一道路

[Kernel API & Core Negotiation Protocol](wiki/KernelAPI.md)
[Priorities & Starvation](wiki/Priorities.md)
Run Code Online (Sandbox Code Playgroud)

第二种方式

[Kernel API & Core Negotiation Protocol](KernelAPI.md)
[Priorities & Starvation](Priorities.md)
Run Code Online (Sandbox Code Playgroud)

在第一种方式下,链接在生成的Doxygen中正常工作,并在访问时被破坏github.com.在第二种方式,链接正常工作github.com,但Doxygen甚至没有尝试链接.

有没有办法编写满足两者的链接?

markdown doxygen github documentation-generation

5
推荐指数
1
解决办法
140
查看次数

GIT合并 - 保持一个分支的特定部分和另一个分支的其他部分

这是场景

主分公司

- 文件名:xxx-master.txt

- 文件内容:

code code ID=01 code code code

开发分支

- 文件名:xxx-dev.txt

- 文件内容:

code code ID=02 code code code

将master合并到dev中时,我想保留xxx-dev.txt作为文件名,ID = 02,但是其他一切都来自master.当将dev合并为master时,反之亦然.这是我能让GIT理解的吗?

git git-merge

5
推荐指数
1
解决办法
218
查看次数

如何让 jenkins 构建状态徽章动态显示其文件所在的分支

我不确定摘要是否明确说明了这一点。我想要做的是创建一个 jenkins 构建状态徽章 url,它将以某种方式能够找出它所在的 Git 分支,并动态地向 url 添加正确的分支后缀。

我想这样做,这样我就可以创建一个自述文件,它始终显示master,develop和<branch-i'm-looking-at>詹金斯建立是回购,而无需手动更新,每个分支的徽章。

我知道如何创建特定于分支的构建状态徽章。Jenkins 会自动为你构建 markdown URL。例如,我的一个develop分支看起来像:

[![Build Status](https://jenkins.mycompany.com/path/to/build/develop/badge/icon?subject=develop)]
(https://jenkins.mycompany.com/path/to/build/develop/)
Run Code Online (Sandbox Code Playgroud)

我可以想象它会是使用${BRANCH_NAME}jenkins env var 的东西,但我想不出如何创建它。我对 git hooks 或其他脚本的经验不足,甚至无法开始想出一种方法来做到这一点。

有没有人做过这个?

git github jenkins

5
推荐指数
1
解决办法
531
查看次数

清理结帐后Git文件发生了变化

我做到了git checkout master.如果我这样做,git status它会在我的工作目录中显示两个已更改的文件,即使我没有触及它们.它似乎是某种行结束问题.

git reset --hard HEAD 也没有帮助.

我已经设定core.ignorecase=true,没有帮助.

这有什么不对?Windows上的Git仍然像地狱一样困扰着我......

git

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

Jenkins,在多个用户的ssh上获取git子模块?

不知道标题是否描述了我想说的内容,但这里是:

我想知道使用git子模块设置Jenkins时的"最佳实践".main和submodule repo都可以通过ssh访问,因为我们有几个用户,所有这些用户都有自己的用户名.对于拥有自己用户的Jenkins也是如此.但是,我们(我)偶然发现了一个问题.如果我创建一个子模块: git submodule添加ssh:// my-user-name @ address-to-module-repo并推送它,Jenkins会在尝试获取子模块时将我称为用户,这显然会失败.如果其他一些用户执行了拉取,我的用户名仍然在路径中(在.gitmodule,.git/config等等).

我在"普通"用户之间发现了另一个帖子Git子模块和ssh访问处理共享,但是当Jenkins尝试构建时,它并没有真正解决问题,因为我只允许在Jenkins取出所有我无法执行的操作后执行shell cmd如链接中提到的那样,还是可以(Jenkins新手)?

所以,总结一下.如何解决这个问题,以便在通过ssh获取子模块时Jenkins将使用自己的用户?

Br,Pistol先生

git ssh fetch git-submodules jenkins

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