2013-07-02 37 views
7

說明不了什麼,我們正在使用這種模型的使用Git的: http://nvie.com/posts/a-successful-git-branching-model/混帳取控制檯上

我努力去學習使用git獲取和git具體的合併合併,而不僅僅是拉動。對於我的問題,我所做的是更改分支並將這些更改推送到分支。我在github上看到了這些變化。然後我切換到主人以獲取這些更改。所以我

git checkout master 
git fetch // terminal shows nothing 
git fetch origin // terminal shows nothing 

我是否正確使用命令獲取?我在控制檯上看不到任何東西。但是當我使用像SourceTree這樣的工具,並且我抓取它時,它會更新它們的樹並且我可以看到更改。

假設我得到了下一步的工作,並且看到了不同的更改,我只需要執行git merge <hash of the last commit or commit I want to merge in>?謝謝!

+3

如果一切是最新的,那麼'混帳fetch'將輸出什麼。 – dyng

+0

@dyng我不認爲主人是最新的,因爲當我建立時,我沒有我在最後一個分支上的最新功能。那有意義嗎? – Crystal

+0

默認情況下,如果你爲'master'設置了一個上游,'git fetch origin'會將代碼提取到'origin/master'(* not *'master'),我的意思是'origin/master'是最新的我說最新。你可以通過'git diff master origin/master'來檢查它。如果沒有,也許你沒有設置上游。提取 – dyng

回答

3

至於最後一部分,如「Fun with FETCH_HEAD」所提到的,你可以這樣做:

$ git fetch git://repo.or.cz/stranger.git for-junio 
$ git log -p ..FETCH_HEAD 
$ git merge FETCH_HEAD 

因爲「pull」是「fetch + merge」中,我們明確地分解成操作兩個步驟。

fetch」葉它FETCH_HEAD在另一邊發現了分支,它可以直接使用命名坐在分支尖端的提交對象的信息。
git log -p ..FETCH_HEAD」(注意雙點)可以讓你查看他已經提交的提交內容,但不會在你的分支中修改補丁形式來檢查他做了什麼是明智的。
如果您滿意,您可以使用FETCH_HEAD將提交合併到您的分支

(例如見this answer

正如在 「How Do I 'git fetch' and 'git merge' from a Remote Tracking Branch (like 'git pull')」 詳細介紹,您不必使用FETCH_HEAD如果你有一個upstream branch定義:

git fetch origin 
git merge origin/an-other-branch 

git fetch origin an-other-branch將提取的提示存儲在FETCH_HEAD中,但不包含origin/an-other-branch(即通常的「遠程跟蹤分支」)。
所以,人們可以做git fetch origin an-other-branch && git merge FETCH_HEAD

對於第一部分,請確保your branch has an upstream branch set到您的遠程上游回購。

7

git fetchgit fetch origin沒問題,但如果沒有什麼可做的事情,則不顯示任何內容。

您可以使用git fetch -v更加詳細和顯示更多的信息

+0

直截了當的答案。 –