我在学校机器上设置了一个git repo,然后在另一台家用机器上克隆了同一个repo。我已经提交并推动了家用机器现在我想更新到学校机器的更改。我该怎么办?我尝试了git remote update
,但在检查文件时没有更新。
答案 0 :(得分:1)
只需在学校机器上执行此命令:
git pull origin master
希望它有所帮助。
答案 1 :(得分:0)
你错了:)
如果您使用的存储库不是学校机器上的裸存储库,则需要
git reset --hard
推送之后,因为你只是更新ref不是工作副本
更好的是使用裸存储库并从其他机器/存储库中拉/推它 Git on server
答案 2 :(得分:0)
由于您使用bitbucket
标记了问题,因此我将做出以下假设。如果这些假设中的任何一个不正确,请在您的问题中澄清,我将更新此答案。
bitbucket
bitbucket
存储库的克隆bitbucket
存储库的克隆。git add <changes>
git commit -m '<message>'
git push <remote> <branch>
git remote update
git remote update
获取了所有遥控器中的更改,因此如果主存储库推送的更改位于同一个遥控器上,则它们已加载到学校系统的存储库中。
这里的关键是存储库是.git
文件夹,因此其中的引用已更新 - 但工作副本不是。要更新工作副本,您需要将提取到本地存储库的更改与工作目录合并。这是通过git merge <options>
完成的。
如果我的假设(基于您的标签)不正确且只有两个存储库;学校和家庭。然后,您需要git merge <options>
将更改带入您的工作副本,除非您也有本地更改;在这种情况下,如果
git stash
git merge <options>
git stash pop
此时解决从存储和提交中弹出的本地更改之间的任何冲突。
如果您不想在本地副本中保留更改,可以使用git reset --hard
将工作副本返回到上次提交的状态。
最后要提醒的是,如果你能避免它,就不要进入非裸存储库 - 而且你通常可以。学校存储库从主存储库中提取(获取/合并)更改比将主存储库推送到学校存储库更好。