【发布时间】:2018-10-01 18:02:19
【问题描述】:
为了触发一些自动化,我需要以特定用户的身份推送到 gitlab 存储库,并具有遵循某些特定格式的分支名称。为了便于参考,我们称该用户为Joe Programmer <jp@company.com>,分支名称为example-branch。
有一个预先存在的提交,我想抓取并推送到 gitlab,所以我更改了我的用户
git config --local user.name "Joe Programmer"
git config --local user.email "jp@company.com"
删除分支(如果存在),并将删除的内容也推送到仓库
git push origin --delete refs/heads/example-branch
git branch -D example-branch
从我的已知良好提交中结帐
git checkout good_commit
并从中分支
git checkout -b example-branch good_commit
然后我提交一个空的更改集并推送到原点。
git commit -m "triggering automation" --allow-empty
git push origin example-branch
但是,当我查看 Gitlab 时,我发现它不仅拾取了我的空提交(作为 Joe Programmer),而且还拾取了我在上面称为 good_commit 的上一个提交,归因于做出该提交的实际人。
我如何最容易地省略 good_commit,所以唯一推送到远程的是我作为 Joe Programmer 的提交?
【问题讨论】:
-
澄清一下:由于
good_commit是这个新分支中的第一个提交(并且它不是由 Joe Programmer 提交的),因此自动化不会正确触发。 -
试试 git checkout --orphan example_branch good_commit? git-scm.com/docs/…
-
@York 这听起来可行,但我注意到
git log --all仍然显示本地存储库上的先前提交。这可能会在远程消失,但我没有办法测试它!你确定吗?如果是这样:请随意写一个答案!