本文针对Git常见的三种场景:全新工程、本地已有工程、以及其他分支关联,详细的操作命令、流程、作用以及注意事项,Git命令并不受代码托管平台的影响,因此本质上可以通用解决问题
本文直接从 Git 命令开始。
默认您已经创建好相关远程工程。
默认您已经配置好鉴权账户和密码(建议通过密钥授权)。
Git 命令并不受代码托管平台影响,无论是 GitHub、Gitee、GitLab 均可使用。
本文主要针对开发,也就是说需要关联工程后续且需要提交代码的场景。
所谓全新工程是指本地创建了一个目录,里面没有任何内容。
# 在本地新建一个工程文件夹
# 初始化当前项目
git init
# 关联远程仓库
# 其中origin的名字可以而改为其他(一般默认用这个)
# git@gitee.com:mebugs/meals.git是我的地址
# 这一步也可以通过配置文件处理
git remote add origin git@gitee.com:mebugs/meals.git
# 拉取代码
# 如果此时直接git pull会报错
# There is no tracking information for the current branch.
# Please specify which branch you want to merge with.
# See git-pull(1) for details.
# git pull <remote> <branch>
# If you wish to set tracking information for this branch you can do so with:
# git branch --set-upstream-to=origin/<branch> master
# 这里提示进行本地与远程分支需要先关联
# 因为此时还没有本地分支,正确的流程应该是
# 创建本地分支、与远程分支关联、然后拉取远程分支
# 对于全新工程,可以直接强制拉取并关联
# 通过下方命令完成三件事:
# 创建一个本地master分支、创建远程master分支、拉取代码
git pull origin master
# 设置关联
# 设置关联属于选用操作(但是非常建议执行此操作)
# 如果不设置关联的话,每次pull或push代码需要带上分支名
# 例如:git pull origin master
# 设置关联后,拉取或推送直接输入:git pull/push
git branch --set-upstream-to=origin/master master
--allow-unrelated-histories
已有工程表示本地工程已经存在了部分文件。
实际上本地已有工程和全新工程基本是一致的。
# 初始化
git init
# 关联远程仓库
git remote add origin git@gitee.com:mebugs/meals.git
# 拉取代码并合并
# 远程分支和本地分支都有内容,一般在拉取代码时指定 --allow-unrelated-histories
# 表示允许不相关历史提交,并强制合并(但是可能存在合并失败的情况,需要手工处理)
# 一般处理合并建议使用 –rebase生成更好的可读提交记录
git pull origin master --allow-unrelated-histories
# 设置关联
git branch --set-upstream-to=origin/master master
# 如果确定本地作为最新的代码内容
# 可以强制提交代码(一般不建议)
git push --force origin master
有时候我们在某个开发阶段会将工程切换到特定的分支。
如 dev 分支。
# 已经在master分支想切换到dev
# 在本地创建分支dev
# 切换并关联此远程分支
# 下方命令git checkout -b dev(本地分支名) origin/dev(远程分支)
git checkout -b dev origin/dev
# 全新工程直接关联其他分支
# 初始化
git init
# 关联远程仓库
git remote add origin git@gitee.com:mebugs/meals.git
# 拉取远程仓库指定分支的代码
git fetch origin dev
# 在本地创建分支dev
# 切换并关联此远程分支
git checkout -b dev origin/dev
温馨提示:系统将通过浏览器临时记忆您曾经填写的个人信息且支持修改,评论提交后仅自己可见,内容需要经过审核后方可全面展示。