Git本地全新工或已有工程以及其他分支的远程仓库关联

本文针对Git常见的三种场景:全新工程、本地已有工程、以及其他分支关联,详细的操作命令、流程、作用以及注意事项,Git命令并不受代码托管平台的影响,因此本质上可以通用解决问题

Git本地全新工或已有工程以及其他分支的远程仓库关联

所属分类: 工具
专题标签: Git 分支 关联

前言

本文直接从Git命令开始。
默认您已经创建好相关远程工程。
默认您已经配置好鉴权账户和密码(建议通过密钥授权)。
Git命令并不受代码托管平台影响,无论是GitHub、Gitee、GitLab均可使用。
本文主要针对开发,也就是说需要关联工程后续且需要提交代码的场景。

全新工程

所谓全新工程是指本地创建了一个目录,里面没有任何内容。

  1. # 在本地新建一个工程文件夹
  2. # 初始化当前项目
  3. git init
  4. # 关联远程仓库
  5. # 其中origin的名字可以而改为其他(一般默认用这个)
  6. # git@gitee.com:mebugs/meals.git是我的地址
  7. git remote add origin git@gitee.com:mebugs/meals.git
  8. # 拉取代码
  9. # 如果此时直接git pull会报错
  10. # There is no tracking information for the current branch.
  11. # Please specify which branch you want to merge with.
  12. # See git-pull(1) for details.
  13. # git pull <remote> <branch>
  14. # If you wish to set tracking information for this branch you can do so with:
  15. # git branch --set-upstream-to=origin/<branch> master
  16. # 这里提示进行本地与远程分支需要先关联
  17. # 因为此时还没有本地分支,正确的流程应该是
  18. # 创建本地分支、与远程分支关联、然后拉取远程分支
  19. # 对于全新工程,可以直接强制拉取并关联
  20. # 通过下方命令完成三件事:
  21. # 创建一个本地master分支、创建远程master分支、拉取代码
  22. git pull origin master
  23. # 设置关联
  24. # 设置关联属于选用操作(但是非常建议执行此操作)
  25. # 如果不设置关联的话,每次pull或push代码需要带上分支名
  26. # 例如:git pull origin master
  27. # 设置关联后,拉取或推送直接输入:git pull/push
  28. git branch --set-upstream-to=origin/master master

已有工程

—allow-unrelated-histories
已有工程表示本地工程已经存在了部分文件。
实际上本地已有工程和全新工程基本是一致的。

  1. # 初始化
  2. git init
  3. # 关联远程仓库
  4. git remote add origin git@gitee.com:mebugs/meals.git
  5. # 拉取代码并合并
  6. # 远程分支和本地分支都有内容,一般在拉取代码时指定 --allow-unrelated-histories
  7. # 表示允许不相关历史提交,并强制合并(但是可能存在合并失败的情况,需要手工处理)
  8. # 一般处理合并建议使用 –rebase生成更好的可读提交记录
  9. git pull origin master --allow-unrelated-histories
  10. # 设置关联
  11. git branch --set-upstream-to=origin/master master
  12. # 如果确定本地作为最新的代码内容
  13. # 可以强制提交代码(一般不建议)
  14. git push --force origin master

关联分支

有时候我们在某个开发阶段会将工程切换到特定的分支。
如dev分支。

直接切换

  1. # 已经在master分支想切换到dev
  2. # 在本地创建分支dev
  3. # 切换并关联此远程分支
  4. # 下方命令git checkout -b dev(本地分支名) origin/dev(远程分支)
  5. git checkout -b dev origin/dev

全新创建关联

  1. # 全新工程直接关联其他分支
  2. # 初始化
  3. git init
  4. # 关联远程仓库
  5. git remote add origin git@gitee.com:mebugs/meals.git
  6. # 拉取远程仓库指定分支的代码
  7. git fetch origin dev
  8. # 在本地创建分支dev
  9. # 切换并关联此远程分支
  10. git checkout -b dev origin/dev