目錄
對遠程倉庫的操作
介紹
查看 (git remote)
介紹
查看詳細信息
添加(git remote add)
介紹
與 git clone對比
從遠程倉庫中抓取與拉取
抓取(git fetch)
拉取(git pull)
推送(git push)
介紹
注意
抓取更新+合并的方法
git fetch + git merge
解決沖突
git?fetch + git rebase
解決沖突
git pull
對比
移除(git remote remove/rm)
對遠程倉庫的操作
介紹
遠程倉庫是托管在網絡中的 Git 倉庫
- 常見的平臺有 GitHub、Gitee、GitLab 等
- 我們可以與遠程倉庫進行同步、協作開發、備份等操作
?
查看 (git remote)
介紹
git remote
- 查看當前 Git 倉庫配置的遠程倉庫名稱
(默認是origin)
如果添加 -v選項
- 查看遠程倉庫名 + 詳細 URL(fetch 和 push -- 拉取/推送代碼)
查看詳細信息
git remote show <remote> 命令 用于顯示關于指定遠程倉庫的詳細信息,不僅包括倉庫的 URL,還包括一些其他關鍵的信息
- 還會列出哪些遠程分支 不在你的本地 / 已經從服務器上移除 , 執行 git pull 時,哪些本地分支可以與它跟蹤的遠程分支自動合并
?
添加(git remote add)
介紹
git remote add 新名字 地址
- 給當前本地 Git 倉庫添加一個遠程倉庫地址,并起一個別名 -- 這樣你之后就可以通過這個別名來操作遠程倉庫,而不用每次都寫完整的 URL
- 核心是添加了一個指向遠程倉庫的“地址標記”,修改了本地倉庫的
.git/config
文件
與 git clone對比
從遠程倉庫中抓取與拉取
抓取(git fetch)
git fetch <遠程倉庫名>把遠程倉庫的新提交、分支(當前所有你還沒有的數據)等內容下載到本地,但不會自動合并或改變你的當前工作分支
需要手動合并
- 把遠程的
origin/main
合并到你當前的分支
拉取(git pull)
git pull <遠程名> <分支名>
- 表示從遠程倉庫
origin
的main
分支抓取更新,并合并到你當前所在的分支是
git fetch
+git merge
的快捷方式 -- 從遠程抓取最新數據 + 合并當前分支與遠程分支
推送(git push)
介紹
當你想要將 master 分支推送到 origin (默認名)服務器時,使用 git push <remote> <branch> 命令可以將你所做的備份到服務器
- eg: $ git push origin master
注意
成功推送的條件 -- 要有克隆服務器的寫入權限 + 之前沒有人推送過(本地是“基于最新的”)
如果別人先你一步推送了新的提交,然后你再嘗試推送你自己基于舊版本的提交,推送請求會被拒絕
- 你必須先抓取他們的工作,并將其合并進你的工作后,才能推送
抓取更新+合并的方法
git fetch + git merge
- 進行分支合并(遠端和本地)時,如果你本地有修改過某個文件,而遠程也對同一部分進行了修改,Git 無法自動合并,就會發生沖突
解決沖突
執行
git status
來查看哪些文件發生了沖突 -- 未解決的沖突文件標記為unmerged
- 也就是刪除掉你認為不需要的內容
- 注意,一定要把沖突標記全部刪除 -- 否則Git 會認為你沒有解決沖突,文件仍然處于沖突狀態
- 如果想要合并,就把標記刪除即可
解決沖突后,使用
git add
將沖突文件標記為已解決,然后就可以進行提交+推送
git?fetch + git rebase
- 如果你本地的某個提交和遠程的更新有沖突,Git 會停止 rebase 過程,提示你解決沖突
解決沖突
前面的步驟都是一樣的,查看+手動處理+標記為已解決
完成后,繼續進行rebase --?執行
git rebase --continue
繼續 rebase 過程
- 如果還有其他沖突,git會再次停止,你需要重復上述過程,直到無沖突
完成rebase后,即可推送
git pull
對比
移除(git remote remove/rm)
git remote remove/rm
- 從當前 Git 倉庫的配置中移除指定的遠程倉庫 -- 意味著本地倉庫將不再與該遠程倉庫進行交互 (刪除了該遠程倉庫相關的遠程跟蹤分支+配置信息)