Git初步
1.初步了解Git
Git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。[1]Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
1.1Git的功能特性:
从一般开发者的角度来看,git有以下功能:
1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。
7、看主开发者的反馈,如果主开发者发现两个一般开发者之间有冲突(他们之间可以合作解决的冲突),就会要求他们先解决冲突,然后再由其中一个人提交。如果主开发者可以自己解决,或者没有冲突,就通过。
8、一般开发者之间解决冲突的方法,开发者之间可以使用pull 命令解决冲突,解决完冲突之后再向主开发者提交补丁。
从主开发者的角度(假设主开发者不用开发代码)看,git有以下功能:
1、查看邮件或者通过其它方式查看一般开发者的提交状态。
2、打上补丁,解决冲突(可以自己解决,也可以要求开发者之间解决以后再重新提交,如果是开源项目,还要决定哪些补丁有用,哪些不用)。
3、向公共服务器提交结果,然后通知所有开发人员。
1.2Git特点
优点:
适合分布式开发强调个体。
公共服务器压力和数据量都不会太大。
速度快、灵活。
任意两个开发者之间可以很容易的解决冲突。
离线工作。
缺点:
资料少(起码中文资料很少)。
学习周期相对而言比较长。
不符合常规思维。
代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
2.基础的Git命令学习
2.1初始化仓库
非系统盘非中文路径,建立一个文件夹learngit,如E:\learngit
命令行窗口,通过如图所示命令,进入该目录,并通过git init命令,将该目录初始化为一个git仓库
2.2 向仓库添加文件、提交文件
在learngit目录中新建一个README.md文件
使用git add命令,将文件添加到仓库
使用git commit命令,将文件提交到仓库,提交的时候要加说明! (commit之前一定要add)
向仓库添加文件、提交文件.png
2.3 查看仓库状态
可以使用git status命令,查看仓库当前的状态,比如是都提交完了,还是有一些add的文件尚未提交等
查看仓库状态.png
2.4 查看版本历史记录
可以用git log命令进行查看
查看版本历史记录.png
2.5 穿越到任意一个版本
当我们需要穿越到任意在记录中存在的版本去的时候,只需使用如下命令:
穿越到任意一个版本.png
2.6 多文件提交
Git允许add多个文件,然后一次性通过commit来提交,比如我们在learngit目录加入一个图片文件,再放入一个文本文件
添加文件.png
然后进行两次add
两次add.png
查看仓库状态并通过commit一次性提交两个文件
提交两个文件.png
3.Git学习总结
git:查看系统有没有安装Git
设置全局属性,用户名和邮箱
git config --global user.name "Your Name"
git config --globaluser.email“email@example.com”
git init:创建版本库
git add 文件名:将文件添加到临时区
git commit -m “create hello.txt file”:把文件提交到仓库
git status:查看当前的Git仓库状态
git log:查看从近到远的提交日志
git log --pretty=online:简略显示
git reset --hard HEAD:回退到上一版本
git reset --hard commit_id:穿梭到指定版本号的版本
git rm 文件名:删除文件
git config core.autocrIf true:当上传所有文件时出现warning时输入的命令
git remote add origingit@github.com:yangbaby422/learngit.git:设置远程仓库
git push -u origin master:将本地的master分支推送到origin主机的master分支