簡體   English   中英

git pull merge誤解

[英]git pull merge misunderstanding

我的本地git存儲庫中有兩個分支,分別是master和Logging。 兩個分支在BitBucket上都有遙控器。 master是我目前正在從事的項目的主要分支。 其他開發人員完成功能后,他們會將分支合並到master。 日志記錄是我當前的功能分支,是從master創建的。

為了獲得最新的更新並減輕我的合並痛苦,我經常做以下事情:

git pull origin master

而Logging分支已簽出。 我對該命令的理解是,它是從master分支的遠程源獲取的,並將所有更改合並到本地master中。

然后,我做:

git merge master

我打算在這里執行的操作是將我剛剛提取的更改合並到Logging分支中。 但是git總是以以下方式響應:

Already up-to-date.

實際上,查看git log和gitk似乎表明我的本地Logging分支已經包含了master剛剛提取的內容。 我沒想到做一個“ git pull origin master”會完全影響我的Logging分支。 我在這里不明白什么?

Git pull包含一個合並:

git pull origin master

相當於

git fetch origin
git merge origin/master

也就是說,它融合了指定的原點的分支到當前已簽出的分支

單獨的git fetch origin根本不會查看當前已簽出的分支。 它所做的是獲取修訂並將遠程文件頭存儲在refs/remotes/origin名稱空間下。 這就是git merge origin/master從那里git merge origin/master的地方(如果名稱不符合refs/something ,則git查找refs/headsrefs/tagsrefs/remotes )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM