问题标签 [git-workflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

git - 此设置的正确 git 工作流程?

所以我们有我们的template_site

这基本上是我们构建的任何网站的前端基础。

我们有我们的cms

这是站点的后端并且驻留在template_site/cms它自己的存储库中,因为我们经常使用它而不使用template_site

我们有我们的模块,其中包含驻留的文件

template_site/(all over the place)cms/modules/(name of module)

本质上,我们想要的是在它自己的 repo 中 拥有 The
在它自己的 repo 中。然后对于我们创建的每个模块,都将其作为另一个存储库的分支。但是我们只希望该存储库包含特定于模块的文件和对文件的更改,以便我们可以将模块拉入现有项目并让它只影响那些文件。cms
template_sitecms_modules

问题是基本上所有部分都是链接的,但是我们希望能够在处理模块时拉入对 的任何更改template_site,并拉入对cms

这种设置的原因是,对于我们创建的每个站点,我们都希望将其克隆template_site到它自己的存储库中,然后我们可以根据需要对其进行自定义。

我们应该怎么做?

或者这种设置有更好的工作流程吗?

我可以看到的适当设置是:

cms_modules存储库作为“超级项目”
让主分支中没有模块。
添加cms为子模块
添加template_site为子模块

这样我们就可以将 repo 克隆到它自己的存储库中并解决它,并且仅在需要cms_modules时才初始化子模块。template_site但是我在这里可以看到的唯一问题是我们希望cms_modules副本(对于新站点)或分支(对于新模块)跟踪其根目录中的任何新文件,但也跟踪子模块内的任何更改或新文件,而不是他们各自的存储库会跟踪它们。

然后,如果存储库有更新,template_site我们cms可以 cd 进入它们各自的目录并发布更新,但同样我们希望将我们更改的任何文件的合并跟踪到存储cms_modules库而不是相应的子模块。

如果我们想添加另一个模块,我们可以合并到该模块的分支中。

我们怎么能设置它?

0 投票
2 回答
279 浏览

git - 如何更新分叉项目的本地分支?

我克隆了一个分叉的 github 存储库,并从中创建了一个分支。如何使用 upstream/master 更新(使用 git pull )我的分支?

详细地说,这就是我所做的:

1) 在 GitHub 上创建一个 repo

2) 将我的 github 存储库克隆到本地盒子

然后我做了一些本地更改,提交并推送到我的 GitHub 存储库。这些更改是针对我的,对其他人没有用处,因此没有拉取请求。我将这些提交称为“私人提交”。所以这就是发生的事情:4)做了一些“私人提交”

然后我开始研究一个对其他人非常有用的功能。所以我想我必须从我的本地 master 分支出来,在 "private commits" 之前,称之为 "pull-request-branch" 。所以,这就是我所做的:

5)git branch <before private commits>

6)git checkout -b pull-request-branch

7)git push -u origin pull-request-branch

然后我想在我开始处理新功能之前,我必须使用上游更改来更新这个分支。所以这就是我接下来要做的

8)git remote add upstream <original-repo>

9)git pull upstream pull-request-branch(这不起作用)

如何使用 upstream/master 更新 pull-request-branch ?

0 投票
1 回答
325 浏览

git - Git and Github: How to Restructure Our Github and Individual Team Member Repos to Fit Our Newly Desired Workflow?

Background:

1) We are a team of six beginners trying Git and Github for the first time.

2) We created a repo on Github and then all of us cloned it.

3) We then each made our own local feature branches and started working on our first features.

4) Now we have discovered a workflow that uses TWO permanent branches ("master" and "develop") and an arbitrary number of feature branches that come off of "develop" (and go back to it when they are done).

Question:

A) What is the best way to get Github and team repos from the current state of affairs ("master") to what we want ("master" and "develop")?

B) What tracking should each member of the team setup? I.e., we are all interested in staying current with "develop" on Github so we can rebase our feature branches often, for example.

Thanks and sorry if this is a "dumb" question. I feel like the answer is staring me in the face, but I don't have the confidence and would like some help from an experienced Git user, ideally one who uses a workflow similar to what I am taking about. Thanks.

0 投票
7 回答
1313 浏览

git - 禁止从特定分支分支和合并

是否有 git hook 或其他方式来禁止从特定分支分支和合并。我们要确保不会将“脏”集成分支合并到干净的部署分支中。

主要目标是人们不能执行这样的事情:

或者

0 投票
1 回答
252 浏览

git - git workflow branch / clone / stash / --orphan

I've recently dived into Git and maybe I'm over complicating this but I'm trying to figure out the best workflow for the following:

I have created a 'backbone' or 'base' of sorts for themes similar to 'bootstrap' grid based system, responsive etc. I want to keep that base across all themes and have files ontop that I modify from theme to theme. When the time comes to update the base I update across all themes, without affecting the theme files ontop.

eg.
theme.css   <-- Will change from theme to theme
theme.js    <-- Will change from theme to theme
[base]        <-- Files that will be used across all themes

What's the best way to do this with git? Do I have a single master repo and have multiple branches for the different themes that I'll never merge into the master?

0 投票
0 回答
993 浏览

git - 使用 git 挂钩备份 git 远程存储库

我有一些拼图,如果有人可以帮助将这些拼图拼凑在一起以获得完整的画面,那就太好了。

我有几个开发人员在本地开发几个 git repo 并经常推送到服务器上匹配的远程存储库。

现在我想在另一台服务器上复制或自动进行第二次备份。

我了解到,当我post-receive在远程存储库上定义一个钩子并包含一个钩子时,git push to my backup server我可以这样自动化它吗?这个对吗?

现在:我控制了本地和第一个远程仓库,但没有那么多备份仓库。因此,如果有人开始一个新的 git repo,我可以分发post-receive hookvia global git settings。但是是否有可能我可以检查我post-receive hook的备份存储库是否存在,如果不是init新的,然后push呢?如果它存在只是push备份的当前状态。我发现了类似git ls-remote查询遥控器但不知道如何处理它的东西......

但是就像我说的那样,我不确定如何编写git post-receive hook它会自动将更改重新推送到备份服务器......而且最重要的是,我必须为此使用 Windows 服务器 =)

PS:我也看到了类似的东西,git bundle但没有弄清楚这对我有什么帮助......无论如何,我只是在为我的远程仓库寻找备份仓库的自动备份解决方案......

0 投票
0 回答
355 浏览

git-svn - Git svn 子树工作流程

我有项目 A,其中包括项目 B 的本地分支。也就是说,项目 B 的潜在修改源包含在项目 A 的子树中。项目 A 使用 svn,项目 B 使用 git。

使用 git 作为项目 A 的本地副本,我想:

  • 能够将项目 B 的上游变更合并到项目 A中。
  • 能够回馈项目 B对项目 A 中包含的项目 B 的分叉的一些(不是全部)修改。
  • 这样做的方式是将干净的单个提交(未压缩)发送到项目 A(通过 git-svn)和项目 B(通过 git)。

我一直在努力寻找一个混合 git-svn 和 git-subtree 功能的解决方案(git-submodule 是不可能的,因为我想要一个独特的源代码树)。但我找不到完美的解决方案。

0 投票
1 回答
819 浏览

git - 您如何在 git 中的多个部署环境中保持独立和隔离的更改?

在我的工作场所,我们正在尝试设计一个基于 Git 的工作流来处理我们的部署和代码更改。

我们有一个 Java EE Web 应用程序和 3 个部署环境(测试、QA 和生产)。我们还有一个 Jenkins CI 实例来处理构建和部署。

当对应用程序的代码(在分支中)进行更改时,我们需要能够挑选出哪些被提升到 QA 和 Production 的代码。有些人可能会进行质量检查,然后永远不会投入生产。

我们还需要避免在升级和合并时意外将其他所有人的代码包含在您的分支中。

分支的“提升”也需要自动化 - 分析师将选择分支或变更集,然后 jenkins 或其他一些脚本将执行实际的合并和部署。我在这里看到合并冲突是一个问题......

您会如何建议设置 (a) Git 存储库来处理这些要求?

0 投票
2 回答
1213 浏览

github - 使用 github 在团队中工作

在 github 项目中与团队合作时,哪种方式是首选方式?每个成员都应该有自己的分叉,还是我应该创建一个组织,其中主要项目是并且团队中的每个人都复制该项目?

0 投票
1 回答
248 浏览

git - git 工作流的功能分支统计信息

我当前的开发环境使用 git 进行 VCS,我们使用功能分支工作流程。我想达到可以生成有关每个功能的统计信息的程度。主要是,我希望能够确定一个功能需要多长时间才能完成,但其他统计数据也会很高兴看到,例如提交数、代码行数等。

主要考虑因素是为开发人员避免任何多余的工作/流程步骤,但我不反对实施一些简单的事情,例如“必须在功能开始工作之前创建功能分支”以捕获该时间戳。

我不确定收集所需信息的最佳方式。如果一个特性被合并到一个主线分支中并被删除,我会丢失它创建时间的历史。

我能看到的下一个解决方案将涉及一个post-checkout钩子。类似于以下内容:https ://gist.github.com/4557894但我可以想到使用此方法的一些缺陷。

编辑:正如@mr_ndrsn https://github.com/rietta/git_time_extractor所指出的。关于如何使这样的工具在提交/提交消息之外关联到分支的想法?