0

我在学校机器上设置了一个 git repo,然后在另一台家用机器上克隆了相同的 repo。我已经提交并推送了家用机器,现在我想将更改更新到学校机器。我应该怎么办?我试过git remote update了,但是当我检查文件时它没有更新。

4

3 回答 3

1

你做错了:)

如果您使用的存储库不是学校机器上的裸存储库,则需要

git reset --hard

推送到它之后,因为您只是更新 ref 不是工作副本

更好的是使用裸存储库并从 服务器上的其他机器/存储库 Git拉/推到它

于 2013-01-11T16:48:08.033 回答
1

只需在您的学校机器上执行此命令:

git pull 起源大师

希望能帮助到你。

于 2014-09-22T20:07:13.887 回答
0

既然你用 标记了这个问题bitbucket,我将做出以下假设。如果这些假设中的任何一个不正确,请在您的问题中澄清,我将更新此答案。

  • 共有三 (3) 个存储库
    • 一上bitbucket
    • bitbucket学校机器上存储库的克隆
    • bitbucket您的家庭系统上的存储库的克隆。
  • 在家庭克隆上,步骤类似于:
    • git add <changes>
    • git commit -m '<message>'
    • git push <remote> <branch>
  • 在学校克隆
    • git remote update

获取所有远程中的git remote update更改,因此如果主存储库推送的更改位于同一个远程,则它们已加载到学校系统的存储库中。

这里的关键是存储库是.git文件夹,因此其中的 refs 已更新——但工作副本没有。为了更新工作副本,您需要将提取到本地存储库的更改与工作目录合并。这是通过git merge <options>.


如果我基于您的标签的假设不正确并且只有两个存储库;学校和家。然后您需要git merge <options>将更改带入您的工作副本,除非您也有本地更改;在这种情况下,请执行类似于以下的操作 if

git stash
git merge <options>
git stash pop

此时解决从存储和提交中弹出的本地更改之间的任何冲突。

如果您不想将更改保留在本地副本中,您可以使用git reset --hard.


最后要注意的是,如果可以避免,请不要推入非裸存储库 - 通常可以。学校存储库从主存储库中提取(获取/合并)更改比主存储库推送到学校存储库要好得多。

于 2013-01-11T20:20:20.597 回答