Git工作流程图
1. 操作远程仓库
1.1 初始化本地仓库
git init
1.2 添加远程仓库
命令: git remote add <远端名称> <仓库路径>
- 远端名称,默认是origin,取决于远端服务器设置
- 仓库路径,从远端服务器获取此URL
git remote add origin 0~git@gitee.com:baohahaha/warehouse-testing.git~
1.3 查看远程仓库
git remote
1.4 推送到远程仓库
1.4.1 添加工作区到暂存区
- 作用:添加工作区一个或多个文件的修改到暂存区
- 命令形式:
git add 单个文件名|通配符
- 将所有修改加入暂存区:
git add .
- 将所有修改加入暂存区:
1.4.2 提交暂存区到本地仓库
- 作用:提交暂存区内容到本地仓库的当前分支
- 命令形式:
git commit -m '注释内容'
1.4.3 推送到远程仓库
命令:git push[ -f][ --set-upstream][ 远端名称[ 本地分支名[:远端分支名]]]
-
如果远程分支名和本地分支名称相同,则可以只写本地分支
git push origin master
=git push origin master:master
-
-f
=--force
表示强制覆盖 -
-u
=--set-upstream
推送到远端的同时并且建立起和远端分支的关联关系。git push --set-upstream origin master
-
如果当前分支已经和远端分支关联,则可以省略分支名和远端名。
git push
将master分支推送到已关联的远端分支。
1.5 从远程仓库克隆
如果已经有一个远端仓库,我们可以直接clone到本地。
- 命令:
git clone <仓库路径> [本地目录]
- 本地目录可以省略,会自动生成一个目录
git clone https://gitee.com/baohahaha/warehouse-testing
1.6 从远程仓库中抓取和拉取
- 抓取 命令:
git fetch [remote name] [branch name]
- 抓取指令就是将仓库里的更新都抓取到本地,不会进行合并
- 如果不指定远端名称和分支名,则抓取所有分支。
- 拉取 命令:
git pull [remote name] [branch name]
- 拉取指令就是将远端仓库的修改拉到本地并自动进行合并,等同于fetch+merge
- 如果不指定远端名称和分支名,则抓取所有并更新当前分支。
2. 分支的使用
2.1 分支介绍
- 常规分支(Regular Branch):
- 常规分支是指代码仓库中的主要分支,通常是用于存放稳定的、生产可用的代码版本。在常规分支上进行的更改会直接影响到项目的生产环境。
- 在 Gitee 中,通常情况下,master 分支就是常规分支,开发者们会将稳定的、经过测试的代码合并到 master 分支中。
- 保护分支(Protected Branch):
- 保护分支是指在代码仓库中被设置了额外限制或权限的分支。这些限制可以包括阻止普通开发者直接向该分支推送代码、要求代码审查通过后才能合并等。
- 在 Gitee 中,您可以配置保护分支,以确保在关键分支上的更改经过严格的审查和测试。这有助于确保代码库中的重要代码不会轻易受到破坏或引入潜在的错误。
- 只读分支(Read-only Branch):
- 只读分支是指无法进行写操作的分支,只能进行读取操作。在只读分支上,普通开发者不能向分支推送代码,而只能从分支获取代码。
- 在 Gitee 中,可以将某些分支设置为只读,以保护特定的代码版本或确保某些分支中的代码不会意外被修改。
将新建分支推送到 远程仓库
git push 仓库名称 分支名称
例: git push origin dev
将本地分支 与 远程分支关联
git branch --set-upstream-to=仓库名称/远程分支 本地分支
例: git branch --set-upstream-to=origin/master dev
查看本地分支 和 远程分支的关联关系
git branch -vv
接触本地分支 和 远程分支的关联关系
git branch --unset-upstream
关联分支后,后续进行部分操作就不需要说明仓库名和分支名了,比如进行pull和push操作,可以直接写成:
git pull
git push
但是,本地分支如果与远程追踪分支不匹配的话,则需要通过这种情况进行推送
通过 git push origin HEAD:master 命令可以将本地分支(HEAD)推送到远程仓库的 master 分支上。这意味着您将本地分支的更改合并到远程仓库的 master 分支。
2.1 push 冲突 与 解决
冲突发生原因:
提交者的版本库信息内容 < 远程库信息内容
解决办法:
第一种:冲突发生在 不同 文件
使用 git pull
将本地仓库 更新到 远程最新仓库
然后进行 git push
进行代码提交
第二种:冲突发生在 同一个文件
先手动解决冲突: 删除这些冲突标记,保留有用信息
执行 git add .
将这些冲突文件 标记为 已解决
执行 git commit -m
将已解决的更正 提交到本地仓库中
解决完冲突后,就可以 git push
进行代码提交了
<<<<<<<
标志着冲突的开始,表示以下是当前分支(HEAD)的代码。=======
标志着当前分支代码和合并分支代码的分界线。>>>>>>>
标志着冲突的结束,表示以下是合并分支的代码。