gpt4 book ai didi

git branch -f bN, git checkout bN 和 git push --force 在交互式 rebase 之后的所有提交

转载 作者:行者123 更新时间:2023-12-03 20:53:42 25 4
gpt4 key购买 nike

假设我有这个 git 结构:

* hash3 (HEAD -> origin/bN, bN) Message N
|
* ...
|
* hash2 (origin/b2, b2) Message 2
|
* hash1 (origin/b1, b1) Message 1
|
* hash0 (origin/master, master) Message 0

如果我想修改 b1 , 我会做 git rebase -i hash0并使用消息 Message 1 编辑提交.在 rebase 之后,我会有:
* hash6 (HEAD -> bN) Message N
|
* ...
|
* hash5 Message 2
|
* hash4 Message 1
|
| * hash3 (origin/bN) Message N
| |
| * ...
| |
| * hash2 (origin/b2, b2) Message 2
| |
| * hash1 (origin/b1, b1) Message 1
|/
* hash0 (origin/master, master) Message 0

然后,我将每个新散列与其对应的分支链接起来,并将其推送到原点,以便获得:
* hash6 (HEAD -> origin/bN, bN) Message N
|
* ...
|
* hash5 (origin/b2, b2) Message 2
|
* hash4 (origin/b1, b1) Message 1
|
* hash0 (origin/master, master) Message 0

我使用以下命令为每个 <b1, hash4> 执行此操作, <b2, hash5> , ... , <bN, hash6> (这是一个痛苦的屁股):
git branch -f b1 hash4
git push origin b1 --force

题:
有没有办法自动化这个逻辑?

最佳答案

是的。对于一次性的,您可以将命令添加到您的选择列表中,这样您就不必手动查找重写的 ID。

pick hash2
exec git branch -f b2
pick hash1
exec git branch -f b1

为了加快速度,如果有很多引用,你可以通过类似的方式来管理选择列表
awk '/^pick/{print $2}'|git log --stdin --no-walk --pretty='pick %h %s%x0a%-D'

这将使用指向每个选择的提交的所有引用来注释列表。

关于git branch -f bN, git checkout bN 和 git push --force 在交互式 rebase 之后的所有提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61798334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com