我在我的计算机上有一个项目的本地仓库,我把它推到了一个远程的github仓库。然后我使用ssh将repo克隆到我的共享webhosting服务器。
从那以后,我在我的计算机上做了一些更改,我已经推送到github,然后合并到origin(master)repo。
我现在想在我的网络服务器上更新这些文件,但我对git术语有点困惑。
Git clone X
返回
fatal: destination path '' already exists and is not an empty directory.
我用git pull吗? git fetch?我认为这些命令可能会将文件下载到我的计算机而不是网络服务器上的本地存储库中。
git clone
应该在您的(本地)目录上创建远程存储库的克隆。
您需要在您的网络服务器上执行git pull
- 更新本地存储库及其附加的工作副本。
使用git fetch
只会更改本地存储库,而不会更改本地文件(很可能是Web服务器的服务器)。所以这不是那个。
如果你在生产服务器上检查了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
有一个bug,那么git checkout v1.0.0
就会回滚。修复bug,然后git checkout v1.0.1.1
部署hotfix或git checkout v1.0.2
来部署下一个主要版本。