2016-11-14 97 views
0

我有分支和所有在該分支的變化是在主人(頭)。但git diff master...feature/5492_new_currency告訴我,它不是。我錯在哪裏?爲什麼分支報告沒有合併,儘管它合併

$ git diff master...feature/5492_new_currency 
diff --git a/app/locale/ru/LC_MESSAGES/lang.po b/app/locale/ru/LC_MESSAGES/lang.po 
index 9274c9e..6b9d1ae 100644 
--- a/app/locale/ru/LC_MESSAGES/lang.po 
+++ b/app/locale/ru/LC_MESSAGES/lang.po 
@@ -4531,6 +4531,10 @@ msgstr "$" 
msgid "currency:UZS" 
msgstr "сум." 

+# Британский фунт 
+msgid "currency:GBP" 
+msgstr "£" 
+ 
msgid "datepicker:prevText" 
msgstr "Пред>" 

diff --git a/app/protos/defaults.ini b/app/protos/defaults.ini 
index 4742982..4de9ea3 100644 
--- a/app/protos/defaults.ini 
+++ b/app/protos/defaults.ini 
@@ -2,8 +2,8 @@ BASE_DOMAIN    = xxxxx 
INSTANCE_COUNTRY   = ru 
INSTANCE_LANGS    = ru en 
DEFAULT_LANGUAGE   = ru 
-# Доступные валюты стран для магазинов: РФ, США, Евро, Казахстан, Украина, Китай, Молдова, Армения, 
-INSTANCE_CURRENCY   = RUB USD EUR KZT UAH CNY MDL AMD UZS AZN KGS TJS TMT GEL LVL LTL 
+# Доступные валюты стран для магазинов: РФ, США, Евро, Казахстан, Украина, Китай, Молдова, Армения, 
+INSTANCE_CURRENCY   = RUB USD EUR KZT UAH CNY MDL AMD UZS AZN KGS TJS TMT GEL LVL LTL GBP 

MAIL_FROM   = xxxxx 
MAIL_FEEDBACK  = xxxxx 
[email protected]:~/site/app$ git branch 
    feature/5492_new_currency 
* master 
    production 
[email protected]:~/site/app$ cat locale/ru/LC_MESSAGES/lang.po | grep -A 5 -B 5 'msgid "currency:GBP"' 
# Узбекистан 
msgid "currency:UZS" 
msgstr "сум." 

# Британский фунт 
msgid "currency:GBP" 
msgstr "£" 

msgid "datepicker:prevText" 
msgstr "Пред>" 

[email protected]:~/site/app$ git branch -d feature/5492_new_currency 
warning: deleting branch 'feature/5492_new_currency' that has been merged to 
     'refs/remotes/origin/feature/5492_new_currency', but not yet merged to HEAD. 
Deleted branch feature/5492_new_currency (was ab38009). 

回答

0

我們發現是什麼問題:

有人只是cherry-pick這些變化到主分支。

因此,儘管在變化相同的分支是不是master

1

您是否試過git fetch以查看回購庫是否已更新?您可能沒有在計算機上更新它。


檢查您的網上回購。如果它顯示你的分支被合併,它是。如果有,請將更新推送到Github桌面。

希望這會有所幫助!

+1

是的,我已經試過'已經啓動對date' –

+0

好吧,我們對此深感抱歉!你嘗試過調試嗎? –

+0

號您的意思是?我應該運行什麼? –

1

git diff master...feature/5492_new_currency [示出一些差異]

的三個點的語法,A...B,在GIT中具有特殊意義。更確切地說,它具有兩個的特殊含義,其中一個專用於git diff。 (在其它Git命令它有其他特殊意義)對於git diff(和git diff),A...B指:

  • 首先,運行git merge-base --all A B。將其輸出ID保存在一個變量中 - 我們將其稱爲$base。 (在shell腳本中,您可以編寫base=$(git merge-base --all A B),然後echo $base以查看是否只有一個ID。)
  • 然後,只要輸出一個提交ID,選擇一個提交ID,然後運行:git diff $base B。否則會產生一些無用的輸出。 (這個「否則」部分是一個錯誤。這不是實際發生的事情在這裏,你會看到在頭diff --cc,所以我們知道,這其實只是一個ID。)

由於A這裏是masterB這裏爲feature/5492_new_currency,且有一定的差異輸出,告訴我說:

git merge-base master feature/5492_new_currency 

和:

git rev-parse feature/5492_new_currency 

將產生兩個不同的標識。

這又意味着master不是feature/5492_new_currency的祖先。如果是,masterfeature/5492_new_currency的合併基數將爲相同提交ID爲feature/5492_new_currency

你的下一個命令和它的結果卻更多的是直接信息:

[email protected]:~/site/app$ git branch -d feature/5492_new_currency 
warning: deleting branch 'feature/5492_new_currency' that has been merged to 
    'refs/remotes/origin/feature/5492_new_currency', but not yet merged to HEAD. 
Deleted branch feature/5492_new_currency (was ab38009). 

放在一起,這兩個意思是,你的要求:

我有分公司和所有更改該分支在主人(頭)

是wr翁!特別地,該第二結果證明,考慮到將被產生的兩個ID:

git rev-parse HEAD 

和:

git rev-parse feature/5492_new_currency 

從前者的ID不是「小於或等於」的ID。從後者,即HEAD不是feature/5492_new_currency的祖先。假設HEAD實際上是對master的引用,這又意味着master不是feature/5492_new_currency的祖先,就像我們從第一個命令看到的一樣。它可能是「大於」(即超過),但如果是這種情況,git diff本身就會比較feature/5492_new_currency。所以feature/5492_new_currency絕對是不是合併成master。它推到了它的上游,儘管(它的上游是origin/5492_new_currency)。也就是說,名稱feature/5492_new_currency的ID是「小於或等於」,您仍然可以從origin/5492_new_currency獲得該ID。

既然您的分行名稱feature/5492_new_currency已被刪除,您將必須使用除feature/5492_new_currency以外的其他名稱對您的本地名稱master進行任何操作。最直接的可能是運行:

$ git checkout master && git merge origin/5492_new_currency 

這要麼快進master,或使一個新的合併提交。 (強制一個新的合併提交即使快進,您可使用git merge --no-ff