2012-07-30 86 views
0

我從服務器下載最新版本與如何使用Git合併並更新我的工作目錄?

git fetch

據我瞭解現在存儲的更新。

我有兩個問題:

  1. 現在我的工作文件,該文件是從服務器的改變,我想要做的合併? 何時需要合併?我需要在git fetech之後或者當我添加文件時執行此操作嗎?你能否請我說說合並過程中的統計數據?

  2. 如果我想更新我的工作目錄,我沒有任何合併我怎麼能做到這一點? 我試圖做到這一點:

    git checkout -f "mybranch"
    git rebase
    git checkout "mybranch"

是它好嗎?我有不同的方式嗎?

回答

2

我不合並在這種情況下。如果我有突出的變化,我做

git stash 
git checkout master #if I'm not on master 
git fetch origin 
git rebase origin/master 
git checkout whateverbranh #if I was not on master 
git rebase master #if I was not on master 
git stash pop 

我想很多人不這樣做;我喜歡它,因爲它使我的歷史線條保持線性。

你不能總是避免合併。在這種情況下,如果服務器上的文件發生了變化,並且我的提交已經更改了這些相同的文件,我必須在重新綁定期間解決衝突。

+0

存儲的含義是什麼?在這種情況下會發生什麼? – user1365697 2012-07-30 18:38:33

+0

我將所有未提交的更改保存在存儲器中。當你彈出存儲時,git會重新應用這些更改。 – hvgotcodes 2012-07-30 18:52:34

+0

在這種情況下藏東西如何幫助你?最終你替換舊版本? – user1365697 2012-07-30 19:00:44

1

最常見的工作流程是

git pull 
# do something useful 
git commit 
git push 

pull只是fetchmerge(裝置:合併remoteName/branchNamebranchName),並在大多數情況下,足夠的。

+0

我可以使用抓取而不是拉?合併只是當我從服務器獲取文件,而不是當我上傳? – user1365697 2012-07-30 18:32:57

+0

您可以使用'fetch',但這些更改不會合併到您的「本地分支」中[1]。當你想要獲取一個分支,你還沒有「知道」('fetch origin anotherBranch','checkout -b anotherBranch origin/anotherBranch')時,這很有用。如果推送更改,則將更改合併到其分支中。你通常不需要關心它。 ([1]每個分支當然都是本地的,但有些代表遠程分支) – KingCrunch 2012-07-30 18:47:31

+0

當我使用pull時,是否需要添加新分支?例如我的分支是branch1,我需要將git拉到新分支或同一分支?如果我有兩個相同的問題在拉的文件,我會得到合併錯誤?然後我將需要使用一些合併的聲明 – user1365697 2012-07-30 18:51:00