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
部署下一个主要版本。
我的计算机上有一个项目的本地存储库,我已将其推送到远程 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
部署下一个主要版本。