2011-05-16 75 views
10

重建我有一個不斷被我每次執行「git的拉」時間「再創造」與交替字母大小寫一個Git分支。假設分支的名字是「A」(或「A」對所有我知道的),一個「git的拉」會產生行:的Git分支不斷得到上拉

* [new branch]  a  -> origin/a 

再下一個「混帳拉」會產生:

* [new branch]  A  -> origin/A 

這永不停止。我不知道該分支是如何創建的(或者它是如何創建的)。

如何馴服這個分支並使其停止這樣做呢?

+1

這個分支(或分支?)是否出現在'git ls-remote origin'的輸出中? – Cascabel 2011-05-16 12:39:21

+0

您似乎遇到了某些事情。這個列表中確實出現了兩個分支。一個是refs/head/a,另一個是refs/head/A.我認爲這意味着有人創建了兩個不同情況下的分支,但沒有注意到,對吧? – acoward 2011-05-16 15:17:04

回答

7

作爲評價所提到的,既refs/heads/Arefs/heads/a存在遙控器上。這確實意味着存在兩個不同的分支。 (Git本身區分大小寫,因爲大多數非Windows文件系統都是如此。)

但是,如果您使用的是Windows,則可能會解釋此問題。 Refs被創建爲單個文件,每個文件一個。 Git在遠程會看到兩者,但是當它試圖在本地更新它們時,只有一個存在,所以另一個總是被創建。兩個操作的內部順序必須是新創建的一個覆蓋另一個,導致交替。

如果裁判都指向同一個commit,那麼解決的辦法是刪除其中一個遙控器上:

git push origin :refs/heads/A 
+0

這也可以發生在Mac OS X(我轉載它),也有一個解決方法(如果其中一個分支不能只是刪除/重命名):使用*磁盤工具*創建一個磁盤映像與「Mac操作系統擴展(區分大小寫,日誌式)「文件系統(**文件**> **新**> **空白磁盤映像... **)和'cd'到新卷,然後再克隆區分大小寫的存儲庫。 – 2011-05-17 03:46:17

1

看來,你既然得到[新的分支]所有的時間原點/ a和產地/ A是本地被刪除。如果某人或某物正在刪除這些引用,那麼每當您從遠程獲取(或拉出)時都會獲得這些分支。你有沒有嘗試克隆倉庫?你是唯一有這個問題的人嗎?

+0

我不是唯一有這個問題的人。當團隊中的其他人遇到這個問題時,我首先遇到了這個問題,並認爲重新克隆可以解決這個問題。我不確定他們是否試圖重新克隆,並且它消失了。我會發現的。現在我有同樣的問題。我不相信本地發生刪除,因爲每次發生這種情況時,即使在本地回購中沒有發生任何其他情況。我可以立即執行'git pull',每次都會發生。 – acoward 2011-05-16 06:49:23

+0

當你拉動時,你有沒有任何git掛鉤發射? – ralphtheninja 2011-05-16 08:03:11

+0

我是git newb。我認爲,因爲我不知道如何讓git鉤子開火,我沒有它們,對吧? – acoward 2011-05-16 15:18:38

1

我只是遇到了這個問題。在我的情況下,其中一個分支名稱與另一個分支名稱直接相連,所以我從遠程刪除了較舊的分支,因爲它沒有添加任何值。假設分支刪除是「一」,那麼此命令將從遠程刪除(名爲「起源」):

git push origin :a 

一對夫婦取的,問題就消失了(直到有人再次推動它。 ..)