初学Git
视频链接:https://www.bilibili.com/video/av24441039?from=search
一、
SVN与Git的区别
- SVM采用的是增量式管理
- Git采取文件系统快照的方式
二、
集中式版本控制工具
CVS、**SVN**、VSS……
工作流程:
开发人员是客户端;文件和版本信息存储在服务器。
缺点:
服务器集中保存,服务器损坏则所有历史数据会丢失(单点故障)。
分布式版本控制工具
Git、Mercurial、Bazaar、Darcs……
优点:
本地客户端具有完整的历史版本
Git的优势
- 大部分操作在本地完成,不需要联网
- 完整性保证
- 尽可能添加数据而不是删除或修改数据(少有不可逆操作)
- 分支操作非常快捷流畅
- 与Linux命令全面兼容
源码编译安装Git(转载于https://www.cnblogs.com/imyalost/p/8715688.html )
大体的安装步骤如下:
①、获取github最新的Git安装包下载链接,进入Linux服务器,执行下载,命令为: wget https://github.com/git/git/archive/v2.17.0.tar.gz ;
②、压缩包解压,命令为: tar -zxvf v2.17.0.tar.gz ;
③、安装编译源码所需依赖,命令为: yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker 耐心等待安装,出现提示输入y即可;
④、安装依赖时,yum自动安装了Git,需要卸载旧版本Git,命令为: yum remove git 出现提示输入y即可;
⑤、进入解压后的文件夹,命令 cd git-2.17.0 ,然后执行编译,命令为 make prefix=/usr/local/git all 耐心等待编译即可;
⑥、安装Git至/usr/local/git路径,命令为 make prefix=/usr/local/git install ;
⑦、打开环境变量配置文件,命令 vim /etc/profile ,在底部加上Git相关配置信息:
PATH=$PATH:/usr/local/git/bin
export PATH
(echo "export PATH=$PATH:/usr/local/git/bin" > /etc/profile.d/git.sh #添加环境变量
source /etc/profile.d/git.sh)
然后保存,退出!
⑧、输入命令 git --version ,查看安装的git版本,校验通过,安装成功。
Git结构(本地)
- 工作区
- 写代码,添加、编辑、修改文件
- 暂存区
- 临时存储,暂存已修改的文件
- 本地库
- 历史版本
- 远程库(git仓库)
工作区->git add -> 暂存区 -> git commond ->本地库
Git和代码托管中心
代码管理中心的任务:维护远程库
本地库和远程库
团队内部开发(协同开发)
跨团队协作
未完待续……
Git命令行操作
- 流程
1.本地库初始化
- 命令:git init
- 效果:
注意:。git目录存放的是本地库相关的子目录和文件,不能删除也不能随便修改。
2.设置签名
形式
用户:
Email地址:
作用:区分不同开发人员的身份
辨析:签名与登录远程库的账号密码无关!!!命令
项目级别/仓库级别:仅在当前的本地库方范围有效
- git config user.name "user_name"
- git config user.email "user_email"
保存位置
- ./.git/config
- ./.git/config
系统用户级别:当前操作系统的用户范围
- git config --global user.name "user_name"
- git config --global user.email "user_email"
优先级:
- 项目级别优先于系统用户
- 如果只含有系统用户级别签名则以系统用户级别签名为准
- 且不允许二者都无签名
3.查看工作区、暂存区状态
- git status
4.创建文件
- vim [file_name]
5.暂存区内添加/删除文件
- git add [file_name]
- git rm --cached [file_name]
6.提交文件(将暂存区内文件提交到本地库)
- git commit [file_name] 然后通过VIM编辑器添加
- git commit -m"some message" [file_name]
版本前进及后退##
命令
git log
git log --pretty = oneline (每一次操作显示一行,日志多的时候可用)
git log --oneline
git reflog
- HEAD@{i} : i表示回退到历史记录所需要的步数
!版本前进及后退4](https://uploadfiles.nowcoder.com/images/20190930/998638858_1569806496869_895268585355089551E2A73E44FF10BD "图片标题")
- HEAD@{i} : i表示回退到历史记录所需要的步数
多屏显示控制操作:
- 空格 : 向下翻页
- b :向上翻页
- q : 推出
注意 (HEAD -> master) 为指向当前版本的指针
基于索引值操作###
- 命令
- git reset --hard [index] index:索引值
- git reflog
- git reset --hard [index] index:索引值
^回退操作###
- 只能回退 且 ^的个数表示回退的版本数 - git reset --hard HEAD^ (回退上一个版本)
~回退操作###
- git reset --hard HEAD~n (回退n个版本 )