2013-01-11 31 views
0

我在學校機器上安裝了一個git repo,然後在另一臺家用機器上克隆相同的repo。我已經提交併推送了家庭計算機,現在我想更新學校計算機的更改。我該怎麼辦?我試過git remote update,但是當我檢查文件時沒有更新。如何從另一臺機器推送時更新本地git?

+0

如果你推了,是不是學校回購已經是最新的?或者你有第三個存儲庫是遠程的兩個? –

+0

哪個倉庫是權威的倉庫? –

+0

學校回購是原件,然後我從家庭回購工作,並作出更改,然後推。 – Mark

回答

0

你做錯了:)

如果你使用存儲庫不作爲學校計算機上的純倉庫需要

混帳推到它後的復位 - 硬

,因爲您只需更新裁判不是一個工作拷貝

更多更好用的裸庫和其他機/庫推/拉它 Git on server

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>將更改導入您的工作副本,除非您也有本地更改;在這種情況下做類似的東西,如果以下

git stash 
git merge <options> 
git stash pop 

此時解決從藏匿彈出並提交本地更改之間的任何衝突。

如果您不想保留本地副本中的更改,可以使用git reset --hard將工作副本返回到上次提交的狀態。謹慎的


最後一個字,不推到非純倉庫,如果你能避免它 - 和你一般可以。學校資料庫比家庭資料庫推送(取/合併)家庭資源庫中的變更好得多。

1

在學校的機器只需執行以下命令:

的git拉出身主

希望它能幫助。

相關問題