說我創建一個回購,它有一個分支稱爲主。如果其他人購買回購協議並推入新的分支機構B,那麼在本地拉入B而不覆蓋本地主分支機構的最佳方式是什麼?我是否在本地切換到分支B,然後引入更改?我的猜測是,如果我不明確地在本地切換分支,那麼如果我從遠程分支B引入更改,那麼我將用B覆蓋本地主分支。這裏最好的選擇是什麼?拉不同的Git分支
0
A
回答
1
您可以使用git fetch origin branchB
從branchB
獲取所有提交信息,而無需修改master
或工作目錄。
如果要將更改應用於master
,則可以在master
分支上使用git merge FETCH_HEAD
合併它們。這將創建一個新的提交,其中包含master
和branchB
的所有更改。 FETCH_HEAD
是最後一次提交的提交。
2
git fetch origin
git checkout --track origin/<remote_branch_name>
3
你可以做一個git fetch origin branchname
。 通過執行git pull origin branchname
您可以合併兩個分支的更改。安裝一個像kdiff3一樣的合併工具。 可以整合這兩個,按照這個link
0
我想,當你寫「[人]推到一個新的分支B」,你的意思是他們推到自己的叉式回購,而不是原來的回購origin
。
不是從原點獲取B
相反,你需要從他們的叉獲取:
git fetch <url/to/their/fork/repo> B
您將得到提交一份在其分支機構B
,你可以看到遠程分支git branch -a
。你可以用checkout
這個遠程分支讓你的工作文件反映分支B
。
如果你願意,你可以在你提取的同時創建一個本地分支。創建的本地分支的名字來源於一個:
後:
git fetch <url/to/their/fork/repo> B:B
現在,而不是在一個相當長的分支名稱運行git checkout
,你可以git checkout B
。
請記住,pull
只是fetch
+ merge
,而merge
發生在當前檢出的分支上。你的猜測是正確的,如果你運行git pull
而master
被檢出,你將合併被拉的分支的內容到master
。儘管這不是真正的覆蓋,而是增加了對master
的提交。
如果你要使用他們的叉回購更多的時間,你可以將其添加爲遠程:
git remote add their_fork <url/to/their/fork/repo>
這個你不需要寫他們的整個URL後,您可以使用遠程名稱改爲:
git fetch their_fork B:B
相關問題
- 1. 從Git分支拉
- 2. 的Git分支不斷得到上拉
- 3. 在Git中推拉分支
- 4. Git拉/克隆分支
- 5. git的變基到不同的分支
- 6. 如果從不同分支拉出git會收到警告
- 7. 跨分支的Git不同目錄
- 8. 不同分支的Git鏡像
- 9. 合併不同根的git分支
- 10. git中的同步分支
- 11. 有在git的特性分支,並從不同的分支
- 12. 克隆一個分支命名不同分支的git
- 13. Git跟蹤遠程分支,並推送到不同的分支
- 14. 從不同的檢出分支Git推分支
- 15. Git,不同的文件夾,相同的回購,不同分支
- 16. 不同的遠程分支推拉
- 17. 調用不同git分支以外的其他git分支的python代碼而不切換分支
- 18. 爲什麼git分支和$(git分支)輸出不同的結果
- 19. 恢復從選定的分支git拉
- 20. git-rollback拉後的舊分支
- 21. 拉所有的git存儲庫分支
- 22. Git在不同分支上推/推
- 23. Git:刪除遠程分支不同步?
- 24. Git:使用.gitignore與不同分支
- 25. 撤消主分支上的錯誤分支的git拉
- 26. TortoiseGit ...將遠程分支拉到不同的本地分支
- 27. 讓Git分支同步
- 28. git分支有什麼不同-d <branchname>和git分支-D <branchname>
- 29. GIT中三種不同環境的三個不同分支
- 30. git pull和git push的不同默認遠程(跟蹤分支)
在您獲得本地存儲庫中的更改後,您想要執行什麼操作? – siegi
您不會*覆蓋* master,您將在主分支中創建新的合併提交(如果合併不是快進)。 – Gauthier