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
2
git clone [--] <repository>
[<directory>]

推送历史

将本地版本库推送到上游版本库,如果远程有本地未知的commit,则需先pull并解决冲突

1
2
git push [-f]
<repository> <refspec>
  • -f 不论是否有不匹配的历史,一律推送;请仅在遇到重大问题时使用(修改历史是罪恶的)

e.g.1 git push origin main 将当前选中分支推送到 origin 上游版本库的 main 分支

e.g.2 git push origin dev:maindev 分支推送到 origin 上游版本库的 main 分支

e.g.3 git push 将按照《分支管理》中预先设置好的上游版本库进行推送

删除上游分支

1
2
git push -d
<repository> <branchname>