使用 Git 在本地和远程服务器之间“同步”文件

使用 Git 在本地和远程服务器之间“同步”文件

我的预期目标

我在本地计算机中维护一些文件,并通过将它们放在我的网站上与他人共享。过去,每次我进行一些修改等时,我都会使用 FTP 手动上传所有文件。现在,我想知道我是否可以使用 Git 来帮助我实现这一点(通过将本地文件“推送”到我的网站服务器)。我的服务器由 Dreamhost 托管。

第一次尝试

首先,我尝试本教程。我首先将本地文件推送到 Github 仓库,然后通过 ssh 进入我的 Dreamhost 服务器,从git clone --bareGithub 仓库获取文件。但我发现 git 不会传输我的文件。所以我忽略了本教程。

第二次尝试

ssh进入我的 Dreamhost 服务器,直接从 Github 克隆。我的文件全部传输到服务器。然后,在我的本地计算机上,我。然后我添加一些文件,然后提交。然后出现一堆错误:git remote add dreamhost ssh://[email protected]/~/my-projectgit push dreamhost master

错误
(来源:geotakucovi.com

作为 Git 新手,我肯定错过了一些东西。请帮忙!

答案1

当您使用 Git 存储库作为中央存储库时(您似乎就是这样),通常不应在该存储库上拥有工作目录。您提到的错误中列出了这种情况的原因:推送到已签出的分支可能会导致工作树不同步。

如果与您共享的人可以使用 Git,那么您可以在服务器上设置一个裸存储库,然后推送到该存储库。

# On the server
git init --bare ~/project.git

# On your computer
git remote add origin ssh://[email protected]/~/project.git
git push origin master

# On everyone else's computer
git remote add origin http://example.com/~david/project.git
git pull origin master
git checkout master

如果他们不能使用 Git,那么你将需要一个稍微复杂一点的工作流程:

# On the server, once
git init ~/project
git config receive.denyCurrentBranch ignore

# On your computer
git remote add origin ssh://[email protected]/~/project
git push origin master

# On the server after each push
cd ~/project
git reset --hard

完成此步骤后,文件应位于/project

答案2

我并不是一个重度 git 用户,但是可以尝试一下:

  1. 直接从 Github 克隆您的本地 repo 和服务器的 repo。
  2. 对您的本地仓库进行修改。
  3. 提交到您的本地仓库。
  4. 推送至 Github。
  5. 从 Github 拉取到你的服务器。

相关内容