2009-11-15 55 views
2

林與我的git用法有一些混淆。 我將一個回購從一個回購克隆到另一個回購,而新克隆是前一段時間活躍的原始狀態。所以它克隆了一個過去的版本。 當我做'git log -n1'來查看新repo(克隆)的最新提交信息時,它與我克隆的原始repo(最新提交信息)相匹配,所以這讓我更加困惑,因爲git正在指示這兩個都是最新的版本。 在Ubuntu服務器上使用git 1.5.4.3。 任何想法git混亂 - 克隆回購正在返回一個過去的版本

感謝

+0

你可以給你的每一臺計算機上鍵入的命令對應的確切輸出?我可能會更容易遵循發生的事情。 – 2009-11-15 19:27:30

+0

確定 在第二次補償我做了:$ git clone repoURL 然後檢查右邊的SHA1簽名是否存在,克隆回購,我做了:$ git log -n1 我剛剛比較了兩臺機器上的哈希和他們匹配...所以它似乎回購是在他們兩個相同的狀態 – deepblue 2009-11-15 19:31:12

+0

它應該是'git日誌-n1起源',否則你列出提交當前分支,這可能是'主',和除非你在'git pull'上,'master'分支不會在遠程更改時更新 – 2009-11-17 10:15:11

回答

0

你在同一個分支與其他回購?

(你在默認情況下得到的主人,而在其他分支較新提交沒有可能隱藏,直到你切換。)

+0

我沒有創建任何分支,所以它們都與主分支一起工作。當我克隆它創建一個從零開始回購,所以我不能創建分支,即使我想 謝謝 – deepblue 2009-11-15 19:32:11

2

首先確保所有的改變都在遠程倉庫提交。

git add . 
git commit -m "my commit message" 

正在運行git status應該不會顯示未提交的更改。

然後在您的本地副本嘗試通過運行

git branch -a 

運行

git pull origin master #or whatever branch you're on 

可以列出分支機構的-a顯示當地分支機構和那些來自你從克隆的資源庫。

它需要從遠程存儲庫切換到另一個分支,您需要首先設置本地跟蹤分支。該命令將類似於:

git branch --track my_branch origin/my_branch 
git checkout my_branch 

疑問時運行

git pull origin master #or whatever branch you're on 

這將使你的本地工作副本瞭解最新的遠程倉庫。

+0

確定所以'原始回購的git分支-a'只顯示主分支(*主),而在新的克隆回購它的展示(* master \ n origin/HEAD \ n origin/master)。老實說,我不知道這是什麼表示。 我只是做'混帳拉起源大師',它告訴我,它是最新的...所以我認爲它的原始多數民衆贊成在某種程度上不是在正確的狀態,或者我應該說我認爲回購簽入不代表工作目錄狀態... 對原始回購每次我做一個「git commit -m'測試'」它提交最新的更改,就好像它第一次看到它們一樣... – deepblue 2009-11-15 19:42:06

+0

您可能有「unstaged」您的遠程回購更改。在遠程倉庫上運行'git add .'來暫存所有的更改。然後'git commit -m「我的消息」'。然後嘗試從本地回購再次運行'git pull origin master'。 – samg 2009-11-15 19:51:52

+0

這不就是不是這樣,在本地回購中做這件事......即使我沒有改變任何做'git add'的東西。 &'git commit -m「test」'不斷重新發送這些更改,就好像它第一次看到它們一樣......相反,它應該告訴我'沒有提交任何內容「或其他類似的東西。我有一種感覺與它有關 – deepblue 2009-11-15 20:14:32

0

如果您對換行符不一致(core.autocrlf),可能會發生這種情況。

做一個簡單的改變(添加一行到您的文件之一)。

粘貼在這裏什麼git diffgit statuscat .git/config說的,什麼是git commit -am "test"