问题标签 [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 回答
296 浏览

issue-tracking - git 工作流程中的发布编号

我在 git 工作流模型上遇到了以下优秀的博文,该模型适用于发布、开发、功能和错误修复分支: http: //nvie.com/posts/a-successful-git-branching-model/

这听起来像是一个出色的工作流程,我真的很想在生产中尝试它,但有一段话引起了我的注意,让我感到疑惑。

正是在发布分支的开始,即将发布的版本被分配了一个版本号——而不是更早。在那之前,develop 分支反映了“下一个版本”的变化,但在发布分支启动之前,尚不清楚“下一个版本”最终会变成 0.3 还是 1.0。该决定是在发布分支开始时做出的,并由项目的版本号更新规则执行。

我想知道,这种工作方式如何反映在您的票务和错误跟踪系统中?在 JIRA 和 BugZilla 中,我们创建了工单可以属于的“版本”。在切换到发布分支之前,工单在开发分支中属于哪个版本?你的 issuetracker 中是否有每个分支的版本?

那么,您知道您不会在即将发布的版本中而是在之后的版本中实施的功能票呢?我应该为这种票创建一个“即将到来”和“未来”的版本吗?

任何有关此分支工作流程如何反映在工单/问题管理中的见解都值得赞赏!

0 投票
7 回答
29650 浏览

git - 没有服务器的 Git 工作流

Git 应该是一个去中心化的系统,但我在 Google 上找到的所有教程和最佳实践工作流程都建议使用服务器(通常是 GitHub,或者自己设置)

我正在将 git 用于小型个人项目(2-3 人),我在哪里可以找到直接在团队成员机器之间同步更改的最佳实践工作流程。

或者,为什么我应该避免这种情况,而是建立一个“中央”服务器,有哪些令人信服的论据?

0 投票
1 回答
359 浏览

git - 用于减轻来自主题分支的合并冲突的工作流策略

我正处于向我的上级出售 git 的风口浪尖。无论如何,他们正在听我们谈论它。有一件事我不确定,我想看看人们如何处理这个问题。基本上我的问题来自基本理解,即允许一对分支越远,它们就越难合并。

我正在考虑提出这个相当简单的工作流程:假设我有一个主(发布)分支、一个开发分支和主题分支。不同的开发人员正在开发他们单独的主题分支,只要他们觉得他们有工作代码,就会经常将这些主题分支拉到一个中央仓库。定期,当开发人员要求这样做时,维护人员(在我们的组织中,这个人的头衔是“技术主管”)从他们的功能分支合并到开发分支,将其放在临时服务器上并进行测试,一旦功能测试完成,它与 master 合并并推送到生产环境。

这是我的问题。开发人员是否应该定期合并他们的主题分支?这样做可以确保它们都相当干净地合并回 dev 中(或者至少在它们失控之前尽早发现冲突)。我知道我的经理唯一不喜欢的是,这是他们必须做的工作来安抚他们的工具,而不是为项目提供代码。想法?

0 投票
4 回答
91792 浏览

git - git + LaTeX 工作流程

我正在用 LaTeX 写一个很长的文档。我有我的工作电脑和笔记本电脑,我都在他们身上工作。我需要保持两台计算机之间的所有文件同步,并且还想保留修订历史。我选择 git 作为我的 DVCS,并将我的存储库托管在我的服务器上。我也在使用 Kile + Okular 进行编辑。Kile 没有集成的 git 插件。我也没有在这篇文章上与任何人合作。如果我的服务器由于某种原因无法访问,我也在考虑在 codaset 上放置另一个私有存储库。

在这种情况下,推荐的工作流程实践是什么?如何在这个工作方案中安装分支?有没有办法比较同一文件的两个版本?使用藏匿点怎么样?

0 投票
1 回答
164 浏览

git - 如何使用 Git 单独组织额外的项目材料?

我希望所有项目文件(如源代码)成为存储库的一部分。为简单起见,所有工作都在开发分支上完成。此外,我想包括其他项目材料,如 pdf 文件。我不想将它们添加到开发分支。到目前为止,我想出了以下策略。

  • 策略 1 是创建一个单独的分支材料并添加 pdf。该分支与其父分支共享一些历史。
  • 策略 2 适应了第一种策略,但也会不时将材料分支的提交合并到开发分支中。(我不想要这个,它是皮塔饼。)
  • 例如,策略 3 是创建一个不共享源代码历史的孤立分支。
  • 策略 4 是遵循策略 1 或 3 并另外创建一个仅代表“主”存储库的材料分支的子模块。如果这是可能的,工作目录将同时显示开发分支和材料分支。

所有策略的缺点是当我签出另一个分支时,我无法访问工作目录中的文件。
如何在开发分支上工作,同时在工作目录中提供可用的材料?如果您更容易想象,材料也可以是文档


编辑:在阅读了Seth Robertson的回答后,我添加了策略 4 。

0 投票
4 回答
3347 浏览

git - Git 子树工作流程

在我当前的项目中,我正在使用一个开源论坛(https://github.com/vanillaforums/Garden)。我打算做这样的事情:

通过这种方式,我可以更改 vanilla 文件夹(如更改配置)并将其提交到我的 master 分支,我也可以切换到我的 vanilla 分支以获取更新。我的问题是当我尝试将分支合并在一起时

问题是“更新提交”在我的提交之上并“覆盖”了我的更改。我宁愿在更新的基础上重播我的提交。有没有一种简单的方法可以做到这一点?我不太擅长 git,所以也许这是错误的方法。此外,我真的不想将我的历史与香草历史混为一谈。

0 投票
1 回答
825 浏览

git - 在本地使用 Git,然后合并并签入 StarTeam

我的客户目前要求我们使用 StarTeam 来检查我们的代码更改。我想从 StarTeam 中提取所有代码并设置一个本地 Git 存储库,以便我可以利用分支来对某些 JQuery 模块进行一些升级。是否有人对使用本地 Git 存储库然后签入对 StarTeam 服务器的更改有任何建议或建议?

0 投票
1 回答
254 浏览

git - 无法推送或拉取时的 Git 工作流程

这对我来说是一个反复出现的问题,但我想重申一下。

快速解释一下我的情况:我所处的环境没有 git 服务器,也没有共享分区或编码器之间的任何共同点。没有,不会有,不能有。时期。

我正在尝试提出一个工作流解决方案,即使在我们管理的那种环境中,我们的代表也能保持合理的同步。

我目前正在尝试的解决方案使用一个讨论组来分发补丁,两个主要分支和一个看似短的工作流程,如下所示:

  • 分支是marsteryours
  • master是同步分支,它将让您保持最新状态并跟踪其他开发人员仍然没有您的代码。
  • yours将成为您的新主人,并且是您的最终代码应该在的地方。你不在master.
  • 每个人都将补丁发送到讨论列表。
  • 我正在考虑很少有两个人会在同一个文件中工作。

工作流程中有两个主要操作:

生成补丁:

  1. 必须yours
  2. master从( git format-patch master)生成补丁
  3. master
  4. 并入yours_master
  5. >转到yours,继续使用yours

应用补丁:

  1. master分行
  2. 应用收到的补丁
  3. yours分行
  4. 并入master_yours
  5. >继续合作yours

如果我做对了,这应该使master分支与其他人保持合理同步。

并不是说yours分支只是为了帮助跟踪其他人拥有或没有的东西。

我试图弄清楚一些问题是否会太麻烦:

  • 应用补丁的顺序?
  • 如何避免和检测有人错过补丁?
  • 当有人错过补丁时会有多大问题?
  • 这可能会产生我什至没有想到的其他问题?

谢谢!

0 投票
3 回答
449 浏览

git - 了解 Git 工作流程

请耐心等待,因为我仍在尝试使用 git 解决问题。在整个地方进行分叉和分支的整个实践使得了解正在发生的事情变得有点困难。

我试图让工作流程继续进行,但是我遇到了障碍。到目前为止,这就是我所拥有的:

1.分叉项目

2.本地克隆fork

3.添加上游远程,以便您的 fork 可以保持最新

4在克隆中的一个分支上工作:

5从原始(上游)项目的分支更新:

6在我的 fork 中提交并推送更改

如何将我的 fork 中的更改更改为原始项目?有人告诉我拉取请求,但是我找不到要运行的命令来实现这一点。谷歌一直没有帮助。

我应该从上游签出分支,合并我的分叉并推送吗?

我是否应该将原始项目克隆到不同的目录中,将 fork 添加为上游、合并和推送?

0 投票
0 回答
106 浏览

git - GIT_WORK_TREE 不仅更新 1 个文件

我在服务器上设置了两个裸 git 存储库,文件路径如下:

/git/project.git/
/git/project2.git/

然后我添加了两个分支 dev 和 live。然后我在每个项目中添加了以下接收后挂钩

这适用于 1 个项目,但不适用于另一个项目。在第二个项目中,它似乎只适用于我推送的第一个文件,它恰好是一个 .gitignore 文件。

所以简而言之,这个文件是我推送时唯一会更新的文件。