我的预期目标:
我在本地计算机中维护一些文件,并通过将它们放在我的网站上与他人共享。过去,每次我进行一些修改等时,我都会使用 FTP 手动上传所有文件。现在,我想知道我是否可以使用 Git 来帮助我实现这一点(通过将本地文件“推送”到我的网站服务器)。我的服务器由 Dreamhost 托管。
第一次尝试:
首先,我尝试本教程。我首先将本地文件推送到 Github 仓库,然后通过 ssh 进入我的 Dreamhost 服务器,从git clone --bare
Github 仓库获取文件。但我发现 git 不会传输我的文件。所以我忽略了本教程。
第二次尝试:
我ssh
进入我的 Dreamhost 服务器,直接从 Github 克隆。我的文件全部传输到服务器。然后,在我的本地计算机上,我。然后我添加一些文件,然后提交。然后出现一堆错误:git remote add dreamhost ssh://[email protected]/~/my-project
git 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 用户,但是可以尝试一下:
- 直接从 Github 克隆您的本地 repo 和服务器的 repo。
- 对您的本地仓库进行修改。
- 提交到您的本地仓库。
- 推送至 Github。
- 从 Github 拉取到你的服务器。