Git 获取或 Git 拉取以更新网络服务器上的文件?

Git fetch or Git pull to update files on a web server?

我的计算机上有一个项目的本地存储库,我已将其推送到远程 github 存储库。然后我使用 ssh 将 repo 克隆到我的共享虚拟主机服务器。

从那以后我在我的电脑上做了一些更改,我已经推送到 github 然后合并到原始(主)repo。

我现在想在我的网络服务器上更新这些文件,但我对 git 术语有点困惑。

Git clone X

Returns

fatal: destination path '' already exists and is not an empty directory.

我使用git拉吗? git 取?我认为这些命令可能会将文件下载回我计算机上的本地存储库,而不是网络服务器。

git clone 应该在您的(本地)目录上创建远程存储库的克隆。

您需要在您的网络服务器上执行 git pull - 更新本地存储库 其附加的工作副本。

使用git fetch只会对您的本地存储库进行更改,而不会更改本地文件(很可能是网络服务器服务器上的文件)。所以不是这个。

如果您在生产服务器上检出 master 分支(git clone 的默认分支)并且只想更新该分支中的代码,只需执行 git pull .

如果您转向像 git flow 这样的工作流程,那么 develop 分支将成为存储库(以及 git clone)的主分支。您可以将 master 分支部署到您的生产环境,并在所有代码作为流程的一部分合并到主分支后仍然在 master 上执行 git pull

一旦你弄清楚了核心分支和部署,标记将是接下来要实现的事情。

git flow 的一部分是一个 release 过程,您在其中为每个版本创建一个 tag。在这种情况下,您可以然后逐个标记地检出标记,以将代码标记在整个 master 分支的那些点上。然后,不是 git pull 获取 master 的当前内容,而是 checkout v1.x.x 在不同的 tag 点检出代码。这使得回滚生产中的错误变得非常容易:

如果v1.0.1有错误,则git checkout v1.0.0回滚。修复错误,然后 git checkout v1.0.1.1 部署热修复程序或 git checkout v1.0.2 部署下一个主要版本。