我们有一个仅使用master
分支的生产服务器。我们的情况是我们的本地主服务器(是的,这是我们的错)充满了许多提交和代码,我们无法正确地知道它们。
我们需要更改服务器上的几行代码。
您会推荐哪种方式?我想出了两种方法,但不确定它们的安全性:
在生产服务器master
分支上创建一个新分支,将其推送,然后进行一些更改,向后拉并切换到该分支。
只需手动编辑(将来会有冲突)
其他更好的选择吗?
答案 0 :(得分:1)
我无法提出一种“不错”的方法来做到这一点。但是,这是一种方法:
首先,从您当前的本地master
创建一个新的本地分支:
# from master
git branch master_backup
接下来,从远程获取最新更改,其中应包括对远程master
分支的更改:
git fetch origin
然后通过以下方式将本地master
重置为远程分支:
git reset --hard origin/master
这时,您的本地master
分支应该与当前的远程master
同步,并且您先前的本地master
也已经备份到master_backup
。现在,您可以对master
进行更改并将其推送:
# work work work
git add .
git commit -m 'hotfix for master'
git push origin master
最后,要恢复到本地master
分支的原始状态,可以将其硬重置为备份分支:
# from master
git reset --hard master_backup
这时,如果您不希望备份master
分支,可以将其删除:
git branch -d master_backup
这是一个冗长的解决方案,但部分原因在于您无法遵循Git的正常工作流程。理想情况下,您不应该允许本地分支与无法推送的远程版本不同步。一般建议在Git中尽可能频繁地进行同步。