1、什么是git
git是一个分布式的版本控制软件。
为什么要做版本控制:要保留之前所有的版本,以便回滚和修改。中心有很多例如github、码云、csdn等
2、安装git
我以win10为例,官网下载应用程序点击此处下载,双击运行,一直点击next按照默认方式安装即可
鼠标右键出现如下显示则安装成功
3、git使用案例
git常见使用方法命令及流程
3.1第一阶段:git管理文件
右键git Bush here进入要管理的文件夹:目录中尽量别用中文,可能找不到
初始化git init它会帮我们自动创建一个隐藏文件夹,不要去修改它,初始化完场之后文件后面就会有master,不初始化是没有的
查看管理目录下的文件状态git status(因为我是新创建的文件夹里面没有东西所以会出现没有什么可以提交的,要touch出一个文件来进行演示,git支持linux操作,发现他是红色的代表git还没有管理到它)
管理指定文件git add index.html(当输入这个指令之后现在git已经可以管理该文件了)
如果想同时管理所有文件则输入git add .
生成一个版本git commit -m ‘文件描述’
第一次运行的时候需要告诉git是谁在开发版本控制,运行如下两条命令即可。
只需要设置一次,如果换了邮箱在根据这个命令修改就好了
运行设置config命令之后可以在配置中查看输入git config --list --global查看自己的设置
现在就可以提交了git commit -m ‘版本详细信息介绍’
通过git log查看管理的版本,建议开发的时候都是用英文
3.2第二阶段:拓展新功能
修改文件名字mv 原文件 修改后的文件
查看文件状态git status,发现改名后git有记录,不是直接改所以要先删除原有文件在添加管理文件
git commit -m 描述
新功能拓展完毕生成版本
用git也可以直接修改不需要自己删除文件添加管理等操作,直接提交版本就好了操作如下
3.3第三阶段:再次拓展新功能(该功能有问题如何回滚到之前的版本)
git log --oneline让版本信息只显示一行包括版本号和描述,如果显示的太多了则按q退出显示
回滚之前的版本,通过版本号来回滚,git reset --hard 版本号
回滚之后想要查看回滚前的版本信息或者再次回滚到没有回滚之前的状态git reflog查看版本号,复制版本号git reset --hard 版本号就可以任意回滚类似于vm的快照功能
4、git中的分支使用
查看当前有哪些分支git branch,创建并切换分支的命令git checkout -b 分支名
创建一个分支git branch 分支名,他会直接复制当前主分支所在的文件
切换分支git checkout 分支名:类似于复制,不修改原文件
合并开发版本和master线上使用版本从开发版本回到线上master版本,通过git merge 开发板就可合并,如果遇到冲突需要自己手动解决冲突然后再添加提交就好了
5、紧急修复bug
发现bug创建bug分支将master上线的服务拉取下来修复完毕后,切换到master主分支上git merge bug分支将bug修复合并到主分支上,完成bug的紧急修复
删除分支git branch -d 分支名
6、git修改提交了的版本信息message
前提:如果出错则根据提示信息修改,遇到冲突根据提示解决冲突
①不重新提交版本,添加修改文件到上次提交的版本之中,git commit --amend:这个命令将缓存区的提交到最近一次的版本库之中,也可以重新修改版本信息
②直接修改提交的版本信息git rebse -i 版本号:修改版本号之前的版本,不修改本版本,如下就修改的是repair bug版本
7、git rebase的详细使用
让代码的提交记录变得简介git rebase -i HEAD~n
n表示的是你想合并的最新的几条数据
7.1 合并提交信息
7.2修改commit提交信息
输入git commit --amend
直接修改最新的commit提交信息
修改之前的版本commit信息
输入git commit -i 版本号
这个版本号写的是想修改的版本的前一个版本比如1234,四个逐渐递增的开发版本,想要修改3则要写2的版本号,讲想修改的内容写为r保存退出进入修改界面
8、git的其他用法
8.1配置文件
8.1.1项目配置文件(.git/config)
如何查询自己的git账号名称和密码
git config user.name
git config user.password
git config --local user.name 'beiyue'
git config --local user.email 'beiyue@xx.com
8.1.2全局配置文件(~/.gitconfig)
git config --global user.name 'beiyue'
git config --global user.name 'beiyue@xx.com
8.1.3系统配置文件
git config --system user.name 'beiyue'
git config --system user.name 'beiyue@xx.com'
注意:需要有root权限
8.2免密登录
8.2.1直接修改url
将以前重命名的url地址改成下述的方式就可以免密往这里面推拉代码
git remote add origin https://用户名:密码@github.com/juran/dbhot.git
git push origin master
8.2.2SSH实现
直接在命令行中敲ssh-keygen,连续三次回车就会生成公钥和私钥
公钥和私钥(默认放在~/.ssh目录下,id_rsa.pub公钥、id_rsa私钥)
拷贝公钥的内容,并设置到github中
在git本地中配置ssh地址,复制下面的ssh地址不能继续使用http地址
git remote add origin git@github.com:jbeiyue/hello-world.git
git push origin master推代码
8.3git忽略文件
让Git不再管理当前目录下的某些文件。创建一个.gitignore文件在里面写不想让git管理的文件,支持正则匹配,就可以实现不然git管理的目的(一些配置文件以及用户密码等文件不希望被管理)
*.h 以.h结尾的
!a.h 取反
files/ 这个文件夹之下的所有文件都不会被管理
*.py[c|a|d]cad的py文件