2012-04-23 129 views
1

幫助!我的git回購在泡菜!本地和遠程git回購是不同的,但表明「已經最新」

推送和拉本地和遠程分支機構說Already up-to-date.但檢查文件顯示它們之間的差異。

這很複雜,因爲我有兩個本地分支,master和staging,每個分支都跟蹤相同的遠程版本。

我花了幾個小時試圖找出一個系統的方法來解決這個問題。但我擔心我會變得更糟,並在這個過程中失去編輯。

在這些情況下是否有推薦的方法?

EDIT

->git remote show origin     
* remote origin 
    Fetch URL: [email protected]:mygits/myrepo.git 
    Push URL: [email protected]:mygits/myrepo.git 
    HEAD branch (remote HEAD is ambiguous, may be one of the following): 
    master 
    staging 
    Remote branches: 
    master tracked 
    staging tracked 
    Local refs configured for 'git push': 
    master pushes to master (up to date) 
    staging pushes to staging (up to date) 
+1

克隆你的遠程分支到第一個地方,以防你把它搞砸了。 – Alex 2012-04-23 17:09:39

+1

你確定'git status'乾淨嗎?假設是這樣,重要的是人們能夠幫助你解釋你當前的分支是什麼,以及你使用的是什麼形式的'git pull'和'git push'命令,特別是如果你是指定其他參數。 – 2012-04-23 17:10:34

+0

請顯示您使用的命令,以便我們看到分支機構的使用情況。 – 2012-04-23 17:10:50

回答

1

你 'git的遠程來源顯示' 表示主站和分期是相同的。所以兩者都是'最新'也許並不奇怪,但這取決於你在當地擁有什麼。瀏覽了一下有:

git fetch origin 
git diff --name-status master..origin/master   # ditto for 'staging' 
git diff --name-status master..staging     # local differences 

有了這三個「diff文件」(如圖二,一爲多「出身/分期」),你有關於在想什麼混帳的理解是你的四個提交之間的差異分支機構。

你仍然有工作目錄中的內容存在差異,但'git status'會向你顯示這些內容,它們與你的推拉問題無關。 (如果有什麼地方差異會阻止你沒有注意到的問題)

+0

感謝GoZoner。 git列出了差異,並指出文件已被刪除。但推動也說明一切都是最新的。我也無法出於同樣的原因。我剛剛完成了'git reset --hard <<最近的commit ref >>'。這已經添加了以前被刪除的幾個文件。我似乎沒有失去任何補充。我還沒有嘗試'git add .'和'git commit -m「msg」',但卻說'更改不會被提交到commit:',我仍然無法按'已經更新'推送。這很令人費解! – 2012-04-23 18:23:04

+0

好吧,我剛剛嘗試提交-a,似乎有東西再次移動。我現在可以推。我仍然不確定是否丟失了任何修改。我仍然在找git。一個硬復位後跟一個提交 - 聽起來像是一個合理的解決方案。有什麼副作用,我應該尋找? – 2012-04-23 18:42:05

+1

這聽起來像你缺乏有關單個用戶工作流程的基本信息。搜索'git教程'。通常你可能想避免'git reset',因爲你可能會失去東西。但是,實際上,如果您嘗試使用'git add'和'git commit'的變體,那麼您需要一些教程信息。 – GoZoner 2012-04-23 19:33:37