1

我的目标是在我的实验室服务器上设置一个 repo,我可以通过 ssh 在我的笔记本电脑上克隆它。我仍然想要服务器上的工作副本。这是我所做的:

服务器:

mkdir myProject

混帐 --init

(添加一些文件并提交它们,使其不为空)

git clone --bare ~/myProject/.git/ ~/git/myrepo.git

笔记本电脑:

git clone erin@labserver.edu:/home/erin/myrepo.git

git添加文件1

git 提交

git 推送

服务器:

git 拉

然后我得到这个错误:

致命的:你今天想从哪里取?

你知道什么可能是错的吗?我尝试按照此处的分支/暂存/变基方向进行操作,但没有解决问题。还

git pull 起源大师

也没修。

4

1 回答 1

0

我已按照您列出的步骤进行操作,但无法重现您遇到的错误 ( fatal: Where do you want to fetch from today?)。但是,如果您已按照问题中写出的步骤进行操作,server则没有任何远程存储库 -git pull将无法工作,因为server没有任何远程可以从中提取。我认为这是您遇到错误的原因。

目前,您拥有三个存储库:在服务器上:myProject、、myRepo笔记本电脑 myRepo上(从 克隆server)。如果我对这个问题的理解是正确的,你想使用myProject(on server) 和myRepo(on Laptop) 来工作。我假设您已经myRepo(on server) 作为一个集结地,您可以git push来往git pull于;你做得对,因为你已经把它设置为一个--bare存储库,这是一个聪明的举动。

如果您按照triad他的回答中的说明进行操作,您最终会得到两个存储库:server,这是一个--bare存储库,而laptop. 如果您愿意重新设置存储库,我会按照triad说明进行操作,如下所示:

  1. --bare在某处建立一个存储库。这将是一个集结地。称它为有用的东西,比如bareRepository什么。
  2. 您有一个包含一些工作的存储库。在该存储库中(在server或上laptop),添加bareRepository到您的遥控器列表中:git remote add <name> <url>.
  3. git push您的工作从 (2) 中的存储库到bareRepository. 这将确保它bareRepository是最新的等等。
  4. 因为您无法使用bareRepository,所以在没有工作存储库的计算机上再次克隆它(serverlaptop)。因为您正在克隆bareRepository,git 将bareRepository视为origin; 您可以git push origin并且git pull origin心满意足,而不会用工作树弄乱存储库。
  5. 一旦您设置了两个工作存储库(一个 on laptop,一个 on server)和一个--bare存储库(onlaptopserver),您应该能够愉快地同步您的工作:
    • 做一些工作
    • git commit工作
    • git push origin- 将工作交给裸仓库
    • 在另一台计算机上:git pull origin更新您的分支。
于 2012-02-29T18:53:20.147 回答