git 的作用:多人协同编辑代码。
How 多人协同编辑代码?
基于此,产生了几个 git 的 概念:
1)git仓库:原理:在 本地硬盘的基础上,虚拟化出了 “git仓库”
需要 通过 git指令,将 硬盘上的 文件,放入 git仓库中。
2)git仓库的作用:将 git仓库,「推送-push」到远程(如 gitee.com),
那么,该 git仓库,才能被 其他人 下载(pull) + 协同开发。
如何 虚拟化出「git仓库」?
(强调:不能在大范围内(如c盘根目录下)虚拟化git仓库)
必须当指定目录下,执行 命令行 `git init`,即虚拟化出 git 仓库。
虚拟化git仓库成功后,如何将 硬盘上的文件,放入 git 仓库:
举例:新建的文件,只是在 硬盘上新建的,其在 VSCode 的资源管理器下,文件名为“绿色”的。
绿色,表示该文件在 硬盘中,并未放入到 git仓库中。
那么,如何将 硬盘上的文件,放入 git仓库中:
1)`git add filePathName`,表示将 硬盘中的文件,放入 「git暂存」 中
2)`git commit -m '代码的文本描述'`,表示放「git暂存」的代码放入「git仓库」中。
成功后,资源管理器中的文件名,变为 白色;表示 硬盘上该文件的内容与git仓库保持一致了。
已放入 git 仓库的文件,后续被修改后,如何将被修改的文件其内容,同步到 git 仓库中?
1)`git add filePathName`
2)`git commit -m '代码的文本描述'`
git log:
作用:查看 每次 commit 的相关信息:提交人、提交时间、commit 描述
git细节操作
常用的 将硬盘的所有的更新文件,一并放入「git暂存」的快捷键:
`git add .`
Q:git add fileName 有什么用?
将指定的文件,放入 git暂存,以便将暂存的文件,通过 commit 放入 git 仓库。
VSCode 提供的,将 `git add .` + `git commit -m '描述'` 合二为一的操作办法:
左侧工具栏:`源代码管理`,在「消息」栏内写完,点「提交」,等同于上述,两步操作。
VSCode 插件:`GitLens`
// 作用:显示 每一行代码的 操作人/操作时间/commit描述信息
本地git仓库,如何推送到远程:
前提条件:将 公钥,本地电脑要与远程同步。
在 gitee.com 的个人设置上,将本机公钥,添加公钥。
Q:如何获取本机公钥?
1)若本机从未生成过 公钥,即先生成 公钥:`ssh-keygen`
2)若本机有公钥:
1- 命令行:cd ~/.ssh 目录下
2- cat id_rsa.pub 查看公钥
在 将 本地公钥,放入 gitee.com 账号后,
新建一个 远程 地址:
git-branch-分支
git 分支的作用:
模拟场景:几个人同时开发一个项目
小明,今天被分配了 三个小开发内容 A、B、C。
小明在开发到 B 的时候(未完成),领导让 小明将 A 的代码提交上远程。
A 的代码.....
B 的代码... (未完成...)
基于上述场景,git 出现了一个功能: `分支管理` - branch
git 分支的技术点
- `git branch`:查看 本地,一共有 多少个分支
如何创建分支:`git checkout -b newBranchName`
作用:从当前分支,创建出一个 新分支 newBranchName
从当前分支,切换到其他已有分支:
`git checkout 已有分支名`
如何将 已开发完的功能的分支,合并到 其他分支(例如master)。
git-PR流程
案例:模拟 小明 三天开发完 feature/b 功能,在自测OK后。
要将代码合并至 master 的正规流程。
Pull Request 的流程:
1. 将本地代码,提交至 远程: git push origin 分支名
2. 远程gitee.com 上 ,新建「Pull Request」提交
3. 技术领导进行 Code Review,确认代码无误后,进行合并进 master 分支
开发完毕一个功能,继续开发新功能的流程
将本地分支开发完毕,推送至远程后, PR 成功后。
本地切回 master 分支
从 master 分支 进行 `git pull origin master`
将 master 最新代码,同步至本地 master
再从此基础上,切出新的 功能开发分支: feature/xxx
常见的分支命名方式
更多的git命令,可以输入git --help查看,或者访问git命令手册:https://git-scm.com/docs
git init #把当前目录变成git可以管理的仓库
git clone git地址 #克隆项目
git add readme.txt #添加一个文件,也可以添加文件夹
git add -A #添加全部文件
git rm test.txt #删除一个文件,也可以删除文件夹
git commit -a -m “some commit” #提交修改
git status #查看是否还有未提交
git log #查看最近日志
git reset --hard HEAD^ #版本回退一个版本
git reset --hard HEAD^^ #版本回退两个版本
git reset --hard HEAD~100 #版本回退多个版本
git remote add origin +地址 #远程仓库的提交(第一次链接)
git push -u origin master #仓库关联
git push #远程仓库的提交(第二次及之后)
git fetch #从远程获取代码库
git tag xxx #打tag
git tag #显示所有tag
git push --tag #提交tag
git branch -a #显示所有分支
git checkout 分支名 #切换分支
git merge git分支 #合并分支