2011-04-15 109 views
0

我有託管,讓我ssh訪問。git推到裸倉庫,然後拉不工作

我創建了裸倉庫。下班前我在哪裏推。但是,當我從那裏提出更改時,它不起作用。

[email protected] ~/www/project $ git push 
Everything up-to-date 

配置爲:

[email protected] ~/www/project $ git config -l 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.url=ssh://[email protected]/~/project.git 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 

然後家裏的電腦:

[email protected] /var/www/project $ git pull 
Already up-to-date. 


[email protected] /var/www/project $ git config -l 
core.repositoryformatversion=0 
core.filemode=true 
core.bare=false 
core.logallrefupdates=true 
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/* 
remote.origin.url=ssh://[email protected]/~/project.git 
branch.master.remote=origin 
branch.master.merge=refs/heads/master 
gui.wmstate=normal 
gui.geometry=962x330+284+384 207 192 

如果每一件事情是UPTODATE和已經高達日期,那麼爲什麼它們有什麼不同?我如何使用這個設置。我應該打開他們兩個同步,沒有幫助我的託管ssh訪問?

+0

這篇文章被標記爲「git-svn」,但沒有其他引用svn。我錯過了什麼? – nobar 2011-04-16 00:47:10

+0

我認爲我使用存儲庫的方式看起來完全如何svn工作。 – nerkn 2011-04-16 05:18:26

回答

0

當您運行git config時看到的配置存儲在本地,每個存儲庫,它不在存儲庫之間共享(因此它不會被推送到服務器,也不會被拉下;它完全在本地管理)。您的配置由如何管理存儲庫的設置組成,這些設置可能需要在不同的機器上有所不同,甚至在同一臺機器上有不同的回購機制,所以Git不管理存儲庫配置的內容,也不在回購之間共享它。

爲了看到這兩個倉庫之間的更新文件,創建或一個內編輯文件時,使用階段的git add filename文件,使用git commit承諾,然後推。從其他存儲庫中取出時,應該會看到新的或更新的文件。

+0

我運行git commit:D它按照我的預期工作。首先承諾然後推。沒有其他分支比主分支我有。問題我添加了很多文件,目錄但我需要明確地添加它們,提交 - 沒有幫助。 – nerkn 2011-04-16 05:41:51

2

由於您使用的是git push而沒有任何其他參數,因此很難判斷您在筆記本電腦和臺式機上使用哪個分支。如果你只在master分支上工作,git push應該可以工作,因爲你在一個遠程源代碼分支。但是,如果您在另一個分支中,那麼很可能您將其創建爲默認方式,從而創建本地分支。然後您需要使用git push origin mybranchname(或將您的更改合併到另一個分支,可能是主分支)顯式推送該分支到回購。

P.S.偉大的Matthew Mccullough在過去的NFJS上展示了一個偉大的bash提示設置,以顯示git狀態,包括當前分支和髒狀態。我在這裏修改了一個版本https://gist.github.com/235332,這是Matthew的要點。它可能會派上用場,以便跟蹤你所在的分支。