我堅持,我不似乎明白了一個奇怪的問題。我有兩個本地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狀態部分顯示給我。可以有人解釋這一點嗎?另外我該如何恢復?
當你第一次開始使用git時,有時會出現一個壞習慣,而你不知不覺地做了'git add .'或'git -am'commit message''。這發生在你身上嗎? – vgoff
這些意外的文件是否在您推送到原始的相同提交中? – pktangyue