我有一個大約有 60 個提交的本地存盤庫。在大約第 20 次提交時,我將專案推送到 github 存盤庫。
我的本地提交歷史記錄行 (git log --oneline):
5cbd92c (HEAD -> master) Aflevering 70
fafeabb Aflevering 69
3ead1e4 Aflevering 67
37cb1b3 Aflevering 47
a8aab19 Aflevering 46
1cc0b4b Aflevering 44
4301621 Aflevering 43
353a626 Aflevering 34
2f42859 Aflevering 32
0027fc5 Aflevering 29
21eadaa Aflevering 28
be4226a (origin/master, master) Aflevering 20
6b6c5fe Aflevering 16
41c4426 Aflevering 12
0737348 Aflevering 10
我希望與
git push origin master
我的整個主分支將被推送到 github。但相反的反應是
Everything up to date
沒有任何內容上傳到github。
我究竟做錯了什么?
親切的問候,
休伯特
編輯:這是git for-each-ref經過一番探索后轉儲出來的內容,od -bc以暴露任何不良字符:
bash$ git for-each-ref | od -bc
0000000 065 143 142 144 071 062 143 143 144 070 143 071 141 067 070 143
5 c b d 9 2 c c d 8 c 9 a 7 8 c
0000020 061 146 143 060 146 070 061 062 067 070 141 066 070 063 063 145
1 f c 0 f 8 1 2 7 8 a 6 8 3 3 e
0000040 060 143 063 060 067 067 144 067 040 143 157 155 155 151 164 011
0 c 3 0 7 7 d 7 c o m m i t \t
0000060 162 145 146 163 057 150 145 141 144 163 057 142 141 143 153 165
r e f s / h e a d s / b a c k u
0000100 160 012 142 145 064 062 062 066 141 063 062 064 071 066 064 144
p \n b e 4 2 2 6 a 3 2 4 9 6 4 d
0000120 146 141 146 063 062 071 071 067 065 063 145 141 144 061 070 145
f a f 3 2 9 9 7 5 3 e a d 1 8 e
0000140 060 061 062 064 063 065 143 061 067 143 040 143 157 155 155 151
0 1 2 4 3 5 c 1 7 c c o m m i
0000160 164 011 162 145 146 163 057 150 145 141 144 163 057 155 141 163
t \t r e f s / h e a d s / m a s
0000200 164 145 162 012 065 143 142 144 071 062 143 143 144 070 143 071
t e r \n 5 c b d 9 2 c c d 8 c 9
0000220 141 067 070 143 061 146 143 060 146 070 061 062 067 070 141 066
a 7 8 c 1 f c 0 f 8 1 2 7 8 a 6
0000240 070 063 063 145 060 143 063 060 067 067 144 067 040 143 157 155
8 3 3 e 0 c 3 0 7 7 d 7 c o m
0000260 155 151 164 011 162 145 146 163 057 150 145 141 144 163 057 164
m i t \t r e f s / h e a d s / t
0000300 145 163 164 012 142 145 064 062 062 066 141 063 062 064 071 066
e s t \n b e 4 2 2 6 a 3 2 4 9 6
0000320 064 144 146 141 146 063 062 071 071 067 065 063 145 141 144 061
4 d f a f 3 2 9 9 7 5 3 e a d 1
0000340 070 145 060 061 062 064 063 065 143 061 067 143 040 143 157 155
8 e 0 1 2 4 3 5 c 1 7 c c o m
0000360 155 151 164 011 162 145 146 163 057 162 145 155 157 164 145 163
m i t \t r e f s / r e m o t e s
0000400 057 157 162 151 147 151 156 057 155 141 163 164 145 162 012 065
/ o r i g i n / m a s t e r \n 5
0000420 143 142 144 071 062 143 143 144 070 143 071 141 067 070 143 061
c b d 9 2 c c d 8 c 9 a 7 8 c 1
0000440 146 143 060 146 070 061 062 067 070 141 066 070 063 063 145 060
f c 0 f 8 1 2 7 8 a 6 8 3 3 e 0
0000460 143 063 060 067 067 144 067 040 143 157 155 155 151 164 011 162
c 3 0 7 7 d 7 c o m m i t \t r
0000500 145 146 163 057 162 145 155 157 164 145 163 057 157 162 151 147
e f s / r e m o t e s / o r i g
0000520 151 156 057 164 145 163 164 012 142 145 064 062 062 066 141 063
i n / t e s t \n b e 4 2 2 6 a 3
0000540 062 064 071 066 064 144 146 141 146 063 062 071 071 067 065 063
2 4 9 6 4 d f a f 3 2 9 9 7 5 3
0000560 145 141 144 061 070 145 060 061 062 064 063 065 143 061 067 143
e a d 1 8 e 0 1 2 4 3 5 c 1 7 c
0000600 040 143 157 155 155 151 164 011 162 145 146 163 057 162 145 155
c o m m i t \t r e f s / r e m
0000620 157 164 145 163 057 157 162 151 147 151 156 062 057 155 141 163
o t e s / o r i g i n 2 / m a s
0000640 164 145 162 012
t e r \n
0000644
uj5u.com熱心網友回復:
編輯,根據對話按(我的)問題編輯......這是最奇怪的,你似乎在 Git 中遇到了一個錯誤,如圖git for-each-ref所示,盡管你的輸出顯示了兩個分支,但只顯示了一個 master分支。git log master
實際的分支名稱保留be4226a...,它解釋了git push結果。但沒有什么能解釋HEAD -> masterat 5cbd92c...。您現在確實有兩個分支名稱 (backup和test) 記住了這次提交。根據錯誤出現的位置和方式,以下順序可能可以解決問題:
$ git checkout backup
$ git branch -d master
$ git branch master
$ git checkout master
$ git branch --set-upstream-to origin/master
此時,git log --oneline應該HEAD -> master在提交時顯示5cbd92c并且git push origin master應該可以作業。
[以下原始答案。]
您的輸出顯示了兩個名為 的分支master:
5cbd92c (HEAD -> master) Aflevering 70
和:
be4226a (origin/master, master) Aflevering 20
現在,它是不可能有相同名稱的兩個分支,1所以這些人必須實際上是一些其他的名字,簡單的樣子 master。為了git push按照它的方式行事,命名的master必須是第二個,即使是origin/master; 在當前的分支,所指示HEAD -> master的提交5cbd92c,必須是他的名字在一個看起來像 master,但實際上不是master(也許是mas<invisible-character>ter或類似的規定:如果您使用的是Linux系統,使用git branch | cat -v或git for-each-ref refs/heads | od -bc或類似)。
1除非您以某種方式在 Git 中發現了一個 bug,這種 bug 很少見,但并非聞所未聞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/373775.html
上一篇:嘗試正確連接git-p4分支
