git的基本使用
Git是什么
分布式版本控制系统的安全性要高很多,因为每个开发人员电脑里都有完整的版本库,某一个开发人员的电脑坏掉了不要紧,随便从其他开发人员那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有开发人员都没法工作。
Gt是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。
G是Linus Torvalds为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。 Torvalds开始着手开发Gt是为了作为一种过渡方来替代Bitkeeper,后者之前一直是Lnux内核开发人员在全球使用的主要源代码工具。
尽管最初Git的开发是为了辅助Linux内核开发的过程,但是已经发现在很多其他自由软件项目中也使用了Git。
GIT
安装可以到官网下载对应系统的安装包进行安装。然后正常的安装流程即可。
安装后的配置
通过右键即可看到Git Bash Here
,即可打开git bash工具。
通过输入git --version
也可以看到版本号。
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
安装完成后需要设置用户信息,因为Git是分布式版本控制系统,所以每一台电脑注册用户信息(名称和Emai地址)。
值得注意的是, git config命令的 global参数,表示当前这台电脑上所有的Git仓库都会使用这个配置,当然也可以对某个仓库指定不同的用户名和Emai地址。
工作区、暂存区和版本库
- 工作区 当前电脑里能看到的目录
- 暂存区
英文交stage或index。一般存放在
.git
目录下的index文件(.git/index
)中,所以我们把暂存区有时也叫作索引(index) - 版本库
工作区有一个隐藏目录
.git
,这个不算工作区,而是Git的版本库。
Git常见的操作
- clone git clone Repo
- 添加到版本库 git add fileName
需要进入到版本库目录才可以使用此命令。
- 将添加的文件提交到版本库 git commit -m 'message' [file Name]
git commit
命令后可以添加文件名称,表示只提交这个文件,但一般不会跟文件名称,表示全部提交。
- 将本地版本库Push到远程库中 git push URL master
- 从远程库更新到本地库 git pull
- 查看上次修改的信息 git status
- 查看执行git status命令结果的详情信息
git diff
git diff
命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。- 查看尚未缓存的改动
git dff
- 查看已缓存的改动
git diff --cached
- 查看已缓存的与未缓存的所有改动
git diff HEAD
- 显示摘要而非整个dif
git diff --stat
- 查看尚未缓存的改动
Git分支管理
每一种版本控制系统都以某种形式支持分支。使用分支意味着可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
有人把Git的分支模型称为"必杀技特性",而正是因为它,将Git从版本控制系统家族里区分出来。
- 创建分支 git branch name
如果只输入git branch
那么将显示当前的分支,有标识的表示当前正在使用的分支。
- 切换分支 git checkout name
- 合并分支 # 切换到主分支 git checkout master # 将某个分支合并到master分支 git merge name如果两个分支同一文件同一行都发生了修改,那么将不会自动合并分支,而是需要处理冲突。
- 删除分支 git branch -d dev
- 推送分支时,删除多余分支 git push origin --delete branchName
合并分支遇到冲突
可以通过VSCODE中的插件进行快速的合并。合并完成后通过git add
命令告诉git冲突已经解决。
- Java8新日期处理API
- 从MapX到MapXtreme2004[8]-加入文字
- Vue-cli教程
- 动态加载控件
- 一个可以解析嵌套IIF语句的代码
- 快速制作边框的心得
- 通过Nethogs查看服务器网卡流量情况
- 美国国会关于人工智能的提案
- update的多表更新的试验
- silverlight中如何得到ComboBox的选中值(SelectedValue)?
- kvm虚拟化管理平台WebVirtMgr部署-完整记录(安装ubuntu虚拟机)-(5)
- 从MapX到MapXtreme2004[9]-标注的强调显示
- 【第一季】Vue2.0内部指令
- 从MapX到MapXtreme2004[9]-标注的强调显示
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法