记录一些git中多仓库工作的常用命令
查看当前配置的远程仓库: git remote
远程仓库的名称及其对应的 URL:git remote -v
添加一个新的远程仓库:git remote add origin https://github.com/user/repo.git
重命名已配置的远程仓库:git remote rename origin new-origin
删除指定的远程仓库:git remote remove old-origin
查看某个远程仓库的详细信息:git remote show origin
初次推送分支到上游:git push --set-upstream new-origin master
查看每个本地分支跟踪的是哪个远程分支:git branch -vv
# 查看本地分支与远程分支的跟踪关系 git branch -vv # 输出示例: * main a1b2c3d [origin/main] 最新提交信息 dev e4f5g6h [upstream/dev] 功能开发 feature 1234567 [fork/new-feature] 新特性
查看某个远程仓库的所有分支: git remote show <远程仓库名>
创建新本地分支并跟踪某个远程分支:git checkout -b <本地分支名> <远程仓库名>/<远程分支名>
# 从 origin 仓库的 feature/login 分支创建本地分支 git checkout -b login-feature origin/feature/login # 从 upstream 仓库的 dev 分支创建本地分支upstream-dev,并切换到upstream-dev分支 git checkout -b upstream-dev upstream/dev # 创建分支时设置跟踪关系 git checkout -b new-branch --track upstream/new-feature # 本地分支`my-dev`就会跟踪`upstream/dev` git checkout -b my-dev upstream/dev # 切换到已经存在的分支 git checkout branchname # 查看所有分支,包括远程分支 git branch -a
如果已经有一个本地分支,可以设置它跟踪一个远程分支:git branch -u <远程仓库名>/<远程分支名> [<本地分支名>]
# 更改本地分支跟踪的远程仓库 git branch -u upstream/new-target my-local-branch # 将本地分支`my-dev`的跟踪关系改为`upstream/dev` git branch -u upstream/dev my-dev # 1. 获取远程仓库的所有分支信息 git fetch origin # 2. 查看所有远程分支 git branch -r # 3. 查看所有分支(本地+远程) git branch -a
将本地分支推送到某个远程仓库:git push <远程仓库名> <本地分支名>:<远程分支名>
# 推送到 origin 仓库的同名分支 git push origin login-feature # 推送到 upstream 仓库的不同分支 git push upstream login-feature:new-login-system # 初次推送分支到上游 git push --set-upstream new-origin master # 将本地 main 分支推送到远程,并创建 origin/main git push -u origin main
拉取时也可以指定从哪个远程仓库拉取哪个分支: git pull <远程仓库名> <远程分支名>
# 从特定仓库拉取特定分支 git pull origin login-feature # 从上游仓库拉取开发分支 git pull upstream dev
合并操作
# 合并来自 origin 仓库的特性 git merge origin/login-feature # 合并来自 upstream 的修复 git merge upstream/fix-issue-123