2012-11-01 15 views
2

我堅持,我不似乎明白了一個奇怪的問題。我有兩個本地git分支,都指向同一個遠程。當地分支租戶,我已經在以下配置git的我的WS混帳:從分支推造成不需要的文件將被提交

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:project.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
[branch "tenant"] 
    remote = origin 
    merge = refs/heads/master 

我這樣做,所以我可以做混帳拉容易在兩個分支不指定遠程在命令行上。

我在租戶分公司工作,而沒有更新老我分支。我在租戶分支做了修改,做了git pull並試圖將改爲遠程。

git push from tenant分支給我快進錯誤。

To [email protected]:milkyway.git 
    ! [rejected]  master -> master (non-fast-forward) 
    error: failed to push some refs to '[email protected]:milkyway.git' 

在這一點上,我環顧四周,發現這是由於混帳推想我所有的地方分支機構推送到遠程的,即我的兩個租戶(未更新) 。

我通過設置

git config --global push.default upstream 

告訴GIT中只有當前分支推到與其匹配的upsteam分公司找到了解決這個問題。這解決了我的問題,並從租戶分支推進成功。

現在問題來了一部分,當我看着提交歷史使用git的差異看到我的承諾,我發現了一些不應該一直的承諾的一部分其他文件。我又增加了只有8文件提交,做在提交前在git的狀態顯得很認真,這表明只有在變化8個正確的文件被COMMITED部分

怎麼所有其他文件走進我的承諾?他們分別從添加部分第一個失敗的混帳推我試過嗎?我這樣說是因爲這些都是一些我在分行變更的文件。爲什麼git不會在正確的git狀態部分顯示給我。可以有人解釋這一點嗎?另外我該如何恢復?

+0

當你第一次開始使用git時,有時會出現一個壞習慣,而你不知不覺地做了'git add .'或'git -am'commit message''。這發生在你身上嗎? – vgoff

+0

這些意外的文件是否在您推送到原始的相同提交中? – pktangyue

回答

1

您可以查看提交歷史記錄和reflog以確定發生了什麼。

使用git-引用日誌和我敢打賭,你會看到一個合併由主到租戶。