git 远程相关操作
这部分记录如何与上游版本库交流,包含 remote
clone
push
fetch
等
设定上游版本库
使用 git remote
添加上游版本库
1 | git remote add <name> <url> |
url
不一定是网址,也可以是本地路径
列出上游版本库
1 | git remote [-v] |
-v
详细模式
重命名上游版本库代号
1 | git remote rename <old> <new> |
更换上游版本库地址
1 | git remote set-url <name> <newurl> |
移除上游版本库
1 | git remote remove <name> |
与上游版本库交流
下载历史
上游版本库历史会被并记录在 FETCH_HEAD
1 | git fetch [<repository> [<refspec>…]] |
拉取到本地
等效于进行 fetch
然后 git merge FETCH_HEAD
1 | git pull [<options>] [<repository> [<refspec>…]] |
-
<options>
由于pull
相当于两个命令,所以一定程度上可以使用它们的选项e.g. 出现不匹配历史时,可以考虑使用
merge
指令的--allow-unrelated-histories
下载仓库
自动创建空本地版本库到指定路径,然后添加上游版本库,并做pull
1 | git clone [--] <repository> |
推送历史
将本地版本库推送到上游版本库,如果远程有本地未知的commit,则需先pull
并解决冲突
1 | git push [-f] |
-f
不论是否有不匹配的历史,一律推送;请仅在遇到重大问题时使用(修改历史是罪恶的)
e.g.1 git push origin main
将当前选中分支推送到 origin
上游版本库的 main
分支
e.g.2 git push origin dev:main
将 dev
分支推送到 origin
上游版本库的 main
分支
e.g.3 git push
将按照《分支管理》中预先设置好的上游版本库进行推送
删除上游分支
1 | git push -d |