# Git #5 衝突 ###### tags: `Git` ## Git pull 詳細語法講解 | 指令 | 說明 | | -------- | -------- | | git fetch origin(遠端數據庫名稱) master | 將遠端的檔案抓下來一份到本地,但尚未 merge | | git merge origin/main (數據庫名稱/分支)| 把 git fetch 抓下來的遠端數據庫檔案進行合併 | ## 衝突 一個專案有可能會有很多人再一起完成,有可能在修改檔案的時候,都改到同樣的地方,有可能執行 `git pull` 拉下遠端數據庫的時候把你同樣修改的地方覆蓋掉了 --- ## git pull = git fetch + git merge 執行 `git pull` 會先後執行兩個動作,第一步是`下載檔案` 第二步則是 `合併` * `git fetch` 就是在下載 * `git merge 分支` 就是在合併 --- ## git fetch origin main - 抓下遠端數據庫檔案,但是不會合併 ### step1 準備 做個練習,我們預設建立了一個遠端數據庫(GitHub repo),並且連線到本地端,在本地數據庫新增了兩個 commit 並推到遠端數據庫 ( git add . -> git commit -m 'text' *2 ) , 然後 `git push` 上去到遠端數據庫 ### step2 在遠端數據庫新增一個 commit  可以看到有一支鉛筆,點下去後可以修改檔案並且新增一個 commit  新增成功可以看到2個 commit 變成 3個了  但是你將專案放到 source tree 的時候,第3個 commit 並不會出現 ### step3 git fetch origin main  為了避免第三個 commit 影響到本地端尚未同步的檔案,我們使用 `git fetch origin main` , 來抓檔案下來  我們使用了 `git fetch origin main` 之後就出現了我們在遠端數據庫抓下來檔案的 commit 了,<font color='red'>但是還沒有合併喔,所以檔案還沒有同步</font> ### step4 git merge origin/main  當我們在上個步驟檢查抓下來的檔案,檢查沒問題想要將第三個 commit 合併到我們本地數據庫進行同步,這時候就是使用 `git merge origin/main` 來合併  可以看到分支已經同步了 ## git fetch 就是在避免衝突發生,可以先確認有沒有問題,如果沒有問題在進行合併 ## 再次提醒!示意圖, git fetch 下載檔案之後分支模樣  在使用 `git fetch` 之後,你可以發現左邊的本地數據庫進度跟右邊遠端數據庫一樣了,但是你的本地端分支 main 進度還沒有跟遠端數據庫分支同步,所以 `git fetch` 只是先下載檔案喔
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up