用Git提取还是用Git pull来更新Web服务器上的文件?

时间:2018-09-10 18:41:51

标签: git github clone git-pull git-fetch

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

此后,我在计算机上进行了一些更改,这些更改已推送到github,然后合并到原始(主)存储库中。

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

Git clone X

返回

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

我使用git pull吗? git获取?我以为这些命令可能会将文件下载回我的计算机而非Web服务器上的本地存储库中。

2 个答案:

答案 0 :(得分:2)

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

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

使用git fetch仅会更改本地存储库,而不会更改本地文件(很可能是Web服务器的本地文件)。所以这不是那个。

答案 1 :(得分:1)

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

如果您朝着git flow之类的工作流程前进,那么develop分支将成为存储库(以及git clone)的主要分支。您可以将master分支部署到生产环境,并且在所有代码都已合并到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部署下一个主要版本。