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

我的目标是

我在本地计算机上维护了一些文件,并将其与他人分享到我的网站上。 在过去,我通过使用FTP手动上传所有文件来做到这一点,每次我做了一些修改等。现在,我想知道如果我可以使用Git来帮助我实现这一点(通过“推”本地文件到我的网站服务器)。 我的服务器由Dreamhost托pipe。

第一次尝试

首先,我尝试这个教程 。 我首先推我的本地文件到我的Github git clone --bare ,然后ssh到我的Dreamhost服务器,从github git clone --bare 。 但是我发现git不会传输我的文件。 所以我忽略了这个教程。

第二次尝试

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

错误http://geotakucovi.com/gitError.jpg

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

当你使用一个Git仓库作为中央仓库(你似乎是),你通常不应该在该仓库上有一个工作目录。 原因是在你提到的错误中列出的:推入一个被检出的分支会导致工作树不同步。

如果你正在共享的人可以使用Git,那么你可以在服务器上build立一个裸仓库,然后推送到它。

 # 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,那么你需要一个稍微复杂一些的工作stream程:

 # 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下可用

我不是一个巨大的混帐用户,但试试这个:

  1. 从Github直接克隆你的本地回购和你的服务器的回购。
  2. 对您的本地回购进行修改。
  3. 致力于您当地的回购。
  4. 推送到Github。
  5. 从Github拉到你的服务器。