无法拉主机时如何更改一段代码?

时间:2019-02-28 14:22:36

标签: git

我们有一个仅使用master分支的生产服务器。我们的情况是我们的本地主服务器(是的,这是我们的错)充满了许多提交和代码,我们无法正确地知道它们。

我们需要更改服务器上的几行代码。

您会推荐哪种方式?我想出了两种方法,但不确定它们的安全性:

  1. 在生产服务器master分支上创建一个新分支,将其推送,然后进行一些更改,向后拉并切换到该分支。

  2. 只需手动编辑(将来会有冲突)

  3. 其他更好的选择吗?

1 个答案:

答案 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中尽可能频繁地进行同步。