【前端|关于git的安装及使用教程】
关于git的安装及使用教程
- 版本控制系统 有 svn 和 git (这里讲的是git,也推荐大家使用git):
- svn 或 git 的优点:
- svn 或 git 的不同点:
- git的安装步骤:
- 下载软件
- 安装软件
- git的使用步骤:
- 基本命令的了解
- git的工作模式
- 配置相关信息
- 初始化(本地仓库)
- git操作
- 分支,多人协作必备(一个项目一个库)
- 远程控制
版本控制系统 有 svn 和 git (这里讲的是git,也推荐大家使用git): svn 或 git 的优点:
- 可以记录不同版本变化 ;
- 方便多人协作使用 ;
- svn 集中化版本控制系统 全量部署,增量变化 ( 反向计算增量很麻烦,且不方便计算机计算处理 ) =====》 记录不同版本变化 (需要联网,且速度慢)
- git 分布式版本控制系统 全量部署,全量变化 (不需要联网也可以,且速度快) --方便团队协作开发
- git支持一些linux和window指令(git是由linus开发的),svn也支持一些
- 到git官方网站下载git : https://git-scm.com/
- 如果git官方网站下载比较慢,可以试试淘宝搭建的国内镜像网站:
https://npm.taobao.org/mirrors/git-for-windows/
文章图片
- 双击运行Git-2.27.0-64-bit.exe(每个人下载的git版本不同,这里我用的是这个版本的)
- 然后接下来都可以直接按下一步,就能完成
- ps:中间选择git软件的安装目录时,因为是命令行操作,所以建议直接默认位置安装
- 安装好之后会在开始菜单出现以下三个图标
文章图片
- Git GUI 是图形化界面,对于程序员来说不建议使用;Git CMD 是跟我们window自带的cmd命令行差不多的;Git Bash 是带有色彩的 Git CMD;
- 这里说明:git自带的命令行和window自带的命令行都可以执行git代码,但是,window自带的cmd对一些脚手架的效果更好,而git自带的cmd是对执行git代码的效果更好
- 到这里安装步骤基本结束,有兴趣了解更详细的安装步骤说明,可以查看该博主的文章https://blog.csdn.net/weixin_44950987/article/details/102619708
git的工作模式 【 working directory工作目录 —> staging area (index)暂存区(作用:为文件创建索引,方便查找,进行分类) —> repository git本地仓库(到了本地仓库,才叫做一个版本) 】
工作目录 ==== 》 暂存区 ==== 》 本地仓库 ===== 》 远程仓库
这里的远程仓库指的是: github/gitee 等
配置相关信息
- 打开 Git Bash (一般都是用这个,新手),输入以下代码配置
- $ git config --global user.name 名字 (配置用户名,可以随便起名)
- $ git config --global uaer.email 邮箱 (配置用于申请github所填写的邮箱)
文章图片
- $ git config --list (查看相关的配置信息)
- 可以在任何你想要的地方创建一个文件夹,通过命令行切换到文件夹内,或者在文件夹中右键重新打开Git Bash,就自动到当前目录下
- $ git init (初始化本地仓库) – 产生master分支 (主线分支)
- $ rm -rf .git (强制删除本地仓库,仓库名为.git) —> 删库跑路
- $ git add index.html index.css (添加index.html和index.css到缓存区 --前提是index.html\index.css要已经保存才行) ===》 (该步骤的目的:为添加进来的文件创建索引,以及通过索引给文件分类,方便存储和查找)
- $ git commit -m ‘project init’ 【提交版本(project init 版本名 – 也是注释说明用的)到本地仓库】
- $ git add . / $ git add *(添加所有文件到暂存区)
- $ git status (查看(文件)当前状态 --执行到哪一步)
- $ git checkout - - index.html 【撤销工作区修改的操作,(对于仅在工作目录上改变的文件) 使得当前的index.html恢复到上一个版本的状态】 – > 真正的用处在于切换分支
- $ git log (查看历史记录,也是若干个版本提交的信息–完整版)
- $ git log --graph (图形化展示诺干个版本提交信息)
- $ git reflog (查看历史记录 – 简化版) – > (记录版本信息) —> (获取SHA-1加密算法得到的每个版本的唯一钥匙 commit-id)
- $ git diff (比较工作区与暂存区的差异)
- $ git diff - - cached (比较暂存区与本地版本库中最近一次commit的内容差异)
- $ git diff HEAD (比较工作区与本地版本库中最近一次commit的内容)
- $ git diff (比较俩个commit版本之间的差异) 输入的是每一个版本经过SHA-1散列加密算法(美国安全局提出)得到的字符串
- $ git reset HEAD index.html (暂存区文件撤销,不覆盖工作区)
- $ git reset --hard HEAD (切换版本/ 回退版本)(HEAD头指针:记录当前版本)
- $ git reset --hard HEAD^ (当前版本回退一个版本)
- $ git reset --hard HEAD~n (当前版本回退n个版本)
- $ git reset --hard commit-id (切换到某个版本)
- ps:- -hard(回退全部–>包括 HEAD版本\ index暂存区\ working tree工作目录) ; --mixed(回退部分–>包括HEAD,index) ; --soft(只回退HEAD)
- $ git commit --amend (往当前版本追加内容,严格来说是创建一个新的版本,但是与当前的版本内容一致,并可以往里头追加新内容) ==> (同时,会进入该版本的区域,按esc退出:wq) ==>类似 linux指令
- $ git branch 分支名 (创建分支)
- $ git checkout 分支名 (切换到不同分支)
- $ git checkout -b 分支名 (创建并切换到该分支上去)
- $ git stash (创建一个临时存放区,将当前修改的存进去,以便在不进行提交到暂存区/新版本、不创建新分支的情况下,可以切换到别的分支/版本,而保留修改的信息)
- ps:没有提交版本,跨分支都是不合理的;(除非用$ git stash 存起来) -----》 吐出来 ----》 $ git stash pop
- $ git merge 分支名 (将当前分支与代码填写的分支进行合并)— 有冲突会提示,没冲突直接完成合并(合并只是展示合并的效果,不代表完成,还需要提交才行)
- $ git branch 查看分支
- 在Git Bash上使用 ssh-keygen 代码生成一个密钥 (用于识别连接本地仓库与远程仓库)–然后可以在本地用户目录下,找到密钥,并在github上设置好(这里以gitee做演示)
文章图片
文章图片
文章图片
文章图片
- $ git remote add 远程仓库名(别名) 远程仓库地址(https/ssh)–》添加一个远程仓库连接(建议用ssh,因为github服务器在国外,用https会很慢。而且远程仓库是需要自己在github上建立的。)
- $ git push 远程仓库名 分支名(master) --将本地仓库的内容放到远程仓库的某个分支上
- ps:尽量不要跨分支操作,(master一般作为主线分支,需要加密保护,是要上线的)
- $ git pull 远程仓库名 分支名 (拉取该远程仓库的该分支的所有数据,到本地仓库上来,用于每天确保操作的代码与服务器上的保持一致)
- $ git clone ssh (用于下载别人的代码,别人的ssh)
- cd . .是返回上一层目录, cd -是返回到上一次的工作目录。
- $ git rm -r --cached 路径 (删除暂存区中该路径下的内容)
- .gitignore文件是配置文件,可以在本地仓库中创建该文件,并写入不需要或不想被$ git add . 添加到暂存区的文件的路径,这样即可
- 推荐一个学习git的网站: learn git branching
推荐阅读
- 工具|后天就是七夕节,你准备好了吗(送上几个七夕代码,展示你技能的时候到了!)
- web网页模板|如此优秀的JS轮播图,写完老师都沉默了
- 接口|axios接口报错-参数类型错误解决
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- JavaScript|JavaScript — 初识数组、数组字面量和方法、forEach、数组的遍历
- JavaScript|JavaScript — call()和apply()、Date对象、Math、包装类、字符串的方法
- 前端|web前端dya07--ES6高级语法的转化&render&vue与webpack&export
- 工具|Wireshark抓包对其字TCP段理解
- vue|Vue面试常用详细总结
- javascript|vue使用js-xlsx导出excel,可修改格子样式,例如背景颜色、字体大小、列宽等