使用 git rebase 定期将分支同步到 master

2024-03-30

我有一个 Git 存储库,其中的分支几乎从不更改(没有其他人对其做出贡献)。它基本上是主分支,删除了一些代码和文件。有了这个分支,我可以轻松打包项目的精简版本,而不必每次都手动删除代码和文件。

我一直在使用git rebase以使该分支与主分支保持同步,但当我尝试在变基后推送分支时,我总是收到此警告:

To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'Note about
fast-forwards' section of 'git push --help' for details.

然后我用git push --force它有效,但我觉得这可能是不好的做法。我想快速轻松地使这个分支与主分支保持“同步”。有更好的方法来处理这项任务吗?

Update

请参阅此主题以获取完整的解释和解决方案:

git rebase 和 git push:非快进,为什么使用? https://stackoverflow.com/questions/559917/git-rebase-and-git-push-non-fast-forward-why-use


诀窍是:

  • 当您重新设置“模板”分支时,您会更改其历史记录(不同的 SHA1),这意味着任何推送都不会是快进的(没有“新 SHA1”要添加,而是要替换一组全新的 SHA1) )
  • 然后你将该分支推送到非裸回购 https://stackoverflow.com/questions/738154/what-does-git-updating-currently-checked-out-branch-warning-mean(现在默认情况下会阻止)

这是一个不好的做法:

  • 如果其他人依赖于获取该分支(这里不是这种情况)
  • 如果您依赖于您推送到的远程存储库的工作树的内容(因为该内容,如果设置为表示模板分支,可能与您刚刚推送的实际模板分支不同步)

如果这两点都不是问题,你可以继续。
但是(或更)“正确”的处理方法是有一个中间裸存储库(在远程服务器上)要推送到,然后从该裸存储库获取/拉取模板分支到您所在的其他服务器需要该模板项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 git rebase 定期将分支同步到 master 的相关文章

随机推荐