我想为一个项目保留两个独立的git远程存储库(同时有一个本地副本)。一个应该是开发存储库,一个应该是有代表性的公共存储库。我希望公共存储库只包含选定的状态,也就是说,我希望只提交稳定版本,而不提交中间的小提交历史。据我所知,git如果我只是偶尔提交到公共存储库,它将自动更新提交的整个历史记录。有办法解决这个问题吗?
最佳答案
我的问题的答案是基于@andomar的答案和@michael durrant推荐的博客文章。
可以使用不同的分支来发布(master
)、开发(development
)、修补程序(hotfix
)等。每个分支都可以被推送到不同的远程存储库--公共存储库(origin
)或用于开发的存储库(dev
)。
策略应该是将开发更改提交到development
分支并将其推送到dev
远程存储库:
$git checkout dev
...do some changes...
$git commit -m "some development change"
$git push -u dev development
在到达新的发布点之后,应该使用
development
合并master
分支,它将对开发分支所做的所有提交打包在一个提交中,从而防止开发历史出现在主分支上。$git checkout master
$git merge --squash development
$git commit -m "<new release message>"
$git push -u origin master
这将导致对
--squash
的一次提交,该提交将包含自上一版本以来的所有开发更改,从而隐藏origin
中包含的开发历史。关于git - 如何为所选提交保留第二个git远程存储库(状态),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16496581/