0

我正在研究使用 git 自动化代码管理的特定用例。我不确定 git 是否内置了这个功能,或者已经有一个产品可以做到这一点。如果您能指出我正确的方向,我将不胜感激。

思路很简单,流程如下:(我理解这可能不是Git的常规使用方式,是一个具体的用例)

  1. 调度程序将代码从用户之间的共享存储库提交到 GitLab(使用调度程序 user_id)

  2. 在用户完成对代码的应用更改(使用 GUI 界面)并选择他们所做的更改后的第二天,

  3. 脚本\代码修改提交以根据用户在步骤 2 中的整体信息调整 Git-Blame 输出(此步骤可能需要将提交中断为多个提交并更改用户作者)

任何帮助将不胜感激。

我确实使用了“git_blame_someone_else”代码和 rebase\cherrypicking 的组合,但是,我认为我可能太努力了,这可能是 Git 中的内置功能。(中断提交和更改代码作者)

4

2 回答 2

2

不,git没有内置这个功能。我能想到的最接近的是交互式变基,它可以让你将一个提交分成几个(甚至给他们不同的作者),但它是一个手动过程,而不是什么您通常会从脚本中执行。

公平地说,将不同人的提交合并为一个似乎非常低效,只是后来不得不将这些提交分开。我实际上建议做的是重新检查和质疑默认 git 工作流程(不同人的提交保持为单独的提交)对您不起作用的原因。我怀疑您可能会找到更好的解决方案来解决更高级别的问题,这样您就不必做您所描述的事情。

于 2019-01-02T09:35:31.067 回答
0

关于第 1 步:如何在共享存储库中输入修改?代码是如何从共享仓库“提交”到 gitlab 的?


  1. gitlab作为一个 git 服务器,它非常适合托管您的共享 repo 的副本;

  2. 在用户之间使用共享仓库的标准方法是:每个用户创建提交,然后将这些提交推送到共享仓库;使用这个标准工作流程,每个用户都注册为他们创建的提交的作者;

  3. 您可以完美地拥有多个共享存储库,存储库之间的共享内容通常通过从一个副本推送拉到另一个副本来完成;pusing 和 pull 不会改变共享提交的作者,因此不应该采取额外的行动来修改提及他们的初始作者。

在上面的第 1 点、第 2 点和第 3 点中,哪一个不符合您当前的工作流程?
您能否更详细地解释您的用例?

于 2019-01-02T10:05:56.053 回答