使用Git的非常规方法

时间:2019-01-02 09:19:41

标签: git gitlab blame git-blame

我正在研究使用git自动执行代码mgmt的特定用例。我不确定git是否内置了此功能,或者是否有已经在执行此操作的产品。如果您能指出正确的方向,我将不胜感激。

想法很简单,过程如下:(我知道这可能不是使用Git的常规方式,而是一个特定的用例)

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

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

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

任何帮助将不胜感激。

我确实使用了'git_blame_someone_else'代码以及rebasing \ cherrypicking的组合,但是,我认为我可能会太努力,这可能是Git中的内置功能。 (破坏提交并更改代码作者)

2 个答案:

答案 0 :(得分:2)

否,git没有内置此功能。我能想到的最接近的是interactive rebasing,它可以让您将一次提交分成几部分(甚至给他们不同的作者),但这意味着手动操作,而不是通常通过脚本执行的操作。

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

答案 1 :(得分:0)

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


  1. gitlab是一个git服务器,非常适合托管您的共享存储库的副本;

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

  3. 您可以完美地拥有多个共享存储库,存储库之间的共享内容通常是通过 pushing pulling 从一个副本复制到另一个副本;拖拉操作不会改变共享提交的作者,因此不应采取任何额外措施来提及其最初的作者。

在上面的1 2和3点中,哪一个与您当前的工作流程不匹配?
您能否详细说明用例?