Git脚本,用于重基和压缩临时提交



在我几次压缩Git提交的过程中,我花了一些手工工作来选择之前我想要压缩的提交。

是否有一些方法可以自动做到这一点-我的目标是压缩所有以前尚未推送到特定远程分支的提交。

更详细地说,假设我有1个名为"dev"的本地分支和2个远程,公共和私有。我将所有想要的提交并推送到私有远程,到一个名为"dev"的分支,我们称其为private/dev。但是在公共远程上,我想保持东西的整洁,并保留一个称为"master"的标准分支,我们称之为public/master。所以就像我说的,对于所有还没有提交到公共远程主分支的提交,我想把它们压缩成一个大的提交,并推送到public/master

我怎么才能做到呢?看起来复杂。

您只需通过public/master创建一个临时分支(public是您的公共远程的名称,master—例如—是目标分支)

使用merge --squash(参见"在git中,merge --squashrebase有什么区别?")

 git checkout -b temp public/master
 git merge  --squash dev
 # since merge --squash does not produce a commit:
 git commit -m "squash dev"
 git push public temp:master
 git checkout dev
 git branch -d temp

关于冒号语法,请参见"git push branch to a new repo with a different name"和git push的示例部分。
它允许将本地分支推送到具有不同名称的远程分支。

最新更新