我正在尝试实现一个工作流程,在合并之前将我的功能分支从 master 上变基。我发现在变基之前将
feature
分支上的本地提交推送到远程存储库并不是一个好主意,因为这本质上重复了功能分支上的提交,并且需要随后的强制推送,如here所述。 (Git 101 我知道。)我绝对不想养成--force
推送提交的习惯,通过让提交首先在本地累积而不推送,然后重新定位,然后然后推送,我可以避免这种情况。
但是,我希望在变基之前将我的提交推送到远程服务器的某个地方,特别是当本地存储库位于本地计算机上时(可能会遇到 HD 故障等)。有没有办法做到这一点,而不需要
--force
推动?我想过创建某种中间 my_work
分支,但这似乎也会导致“本地/远程分歧”问题。也许有一种聪明(或不那么聪明)的方法可以做到这一点,但我只是没有想到。
一个可能的工作流程是:
feature
分支上工作。定期提交您的更改。feature
分支推送到备份分支或其他远程服务器。master
并将您的 feature
分支重新设置到它上面。feature
分支。master
,而无需在本地签出master
。# Working on feature branch
git checkout -b feature
git commit -m "Your commit message"
# Optional: Backup
git push origin feature:feature_backup # or to a different server
# Rebase
git fetch origin
git rebase origin/master
# Force push to feature branch
git push origin +feature
# Merging into master remotely
git fetch origin
git push origin feature:master