使用 git 挂钩自动更改特定分支中的作者姓名
automatically change author names in specific branch with git hooks
我目前有一个项目有几个工人参与其中,但客户不应该知道参与其中的人员的姓名 – 是的,我知道。我们有 2 git 个存储库。我们的一位客户,也是每个人都在努力的客户。
所以我当前的工作流程是为每个存储库创建单独的文件夹。每当我们的 QA 说 "Okay, new version is fine to send." 时,我都会将源文件夹从 "working repo" 复制到 "client repo" 并进行一次提交、推送和完成。到目前为止,一切都很好。但绝对有很大的改进空间。
我想知道是否可以让 master 分支在合并后(或推送前)通过使用钩子混淆作者姓名来自动更改历史记录,这样我就可以 git merge release
在master 然后 git push
master 的来源不同。
这可能吗?
(我知道这看起来很奇怪,但是……机构,偏执狂……我放弃了)
你绝对可以有两个 remotes(不是起源)。让我将您正在处理的一个称为 origin,第二个称为 agencies.
假设您已经配置了 origin,您可以添加第二个
git remote add agencies http://agencies.org/crazy-repo.git
如果我理解正确,agencies 存储库中应该只有一个 master
分支,并且它应该只包含每个版本的所有工作的提交已在迭代中完成。
IMO,您应该为此目的维护一个本地分支,您将在每个版本中更新该分支。让我们开始吧。
$ git fetch agencies
$ git branch paranoia agencies/master
Branch paranoia set up to track remote branch master from agencies.
迭代后,您应该创建一个 realease 提交(并且可能 tag it 使用新版本)。这将帮助您找到已经发布给 agencies 的内容和新内容。
git comiit -m "Release of the next public version" --allow-empty
git push origin master
然后,您需要使用迭代中的新更改来更新 paranoia
分支。
git checkout paranoia
git cherry-pick <commit-hash-or-tag-of-previous-release>..master
git reset --soft agencies/master
git add -A
git commit -m "This is all the work in the past iteration, authored by me!"
git push
您可以创建一个 git alias 来实现自动化。
我目前有一个项目有几个工人参与其中,但客户不应该知道参与其中的人员的姓名 – 是的,我知道。我们有 2 git 个存储库。我们的一位客户,也是每个人都在努力的客户。
所以我当前的工作流程是为每个存储库创建单独的文件夹。每当我们的 QA 说 "Okay, new version is fine to send." 时,我都会将源文件夹从 "working repo" 复制到 "client repo" 并进行一次提交、推送和完成。到目前为止,一切都很好。但绝对有很大的改进空间。
我想知道是否可以让 master 分支在合并后(或推送前)通过使用钩子混淆作者姓名来自动更改历史记录,这样我就可以 git merge release
在master 然后 git push
master 的来源不同。
这可能吗?
(我知道这看起来很奇怪,但是……机构,偏执狂……我放弃了)
你绝对可以有两个 remotes(不是起源)。让我将您正在处理的一个称为 origin,第二个称为 agencies.
假设您已经配置了 origin,您可以添加第二个
git remote add agencies http://agencies.org/crazy-repo.git
如果我理解正确,agencies 存储库中应该只有一个 master
分支,并且它应该只包含每个版本的所有工作的提交已在迭代中完成。
IMO,您应该为此目的维护一个本地分支,您将在每个版本中更新该分支。让我们开始吧。
$ git fetch agencies
$ git branch paranoia agencies/master
Branch paranoia set up to track remote branch master from agencies.
迭代后,您应该创建一个 realease 提交(并且可能 tag it 使用新版本)。这将帮助您找到已经发布给 agencies 的内容和新内容。
git comiit -m "Release of the next public version" --allow-empty
git push origin master
然后,您需要使用迭代中的新更改来更新 paranoia
分支。
git checkout paranoia
git cherry-pick <commit-hash-or-tag-of-previous-release>..master
git reset --soft agencies/master
git add -A
git commit -m "This is all the work in the past iteration, authored by me!"
git push
您可以创建一个 git alias 来实现自动化。