这里写自定义目录标题
Git入门
最近用了将近一天的时间粗略学习了下Git的使用(看黑马的视频+自己实操)
版本控制器
版本控制器主要分为
- 集中式版本控制工具(Centralized Version Control Systems)
集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能工作,局域网或互联网。个人修改后然后提交到中央版本库。eg: SVN和CVS,不过这两种工具似乎已经没有公司使用了 - 分布式版本控制工具(Distributed Version Control System)
对于前面所述的集中式版本控制工具而言,若中央服务器发生故障,则可能导致在该段时间内工程师们无法协同工作,若中心数据库受到破坏,则将丢失所有的数据,这对于一个公司无疑将是致命的打击,所以分布式版本控制系统应运而生。
本篇文章主要讲述的Git就是一种分布式控制工具,每一次的克隆操作,实际上都是一次对代码仓库的完整备份,每个人的电脑上都是一个完整的版本库,没有“中央服务器”这一概念。
Git
Git中没有“中央服务器”这一概念,但引入了远程仓库(Remote)和本地仓库(Repository)这两个重要概念
Git安装与初始化
安装
官方下载地址:https://git-scm.com/download
下载完成后傻瓜式安装,具体操作可以在CSDN上搜索,我当初参考的文章是这篇,写的非常详细,链接在这:Git安装详细教程
安装好后在桌面右键鼠标会发现多了两个选项:
Git GUI: Git提供的图形界面工具
Git Bash: Git提供的命令行工具
初始化
接下来打开Git Bash,进行用户信息的配置(每次Git提交都会使用此用户信息进行身份验证)
- 配置用户名称
git config --global user.name "xxx" /*xxx为自己想要设置的名称*/
- 配置用户email地址
git config --global user.email "xxx" /*xxx为自己想要设置的email地址*/
验证自己是否配置成功
git config --global user.name
git config --global user.email
若回车后显示内容为刚才自己设置的xxx则为成功
为指令设置别名
在Git中有一些使用非常频繁的指令,且某些指令的参数很多,则我们可以自己为这些指令设置一个别名(下面以git log指令为例)
*先来看看初始的执行git log指令得到的结果 *
*这是设置了别名之后的显示 *
设置别名步骤
- C盘中找到用户文件夹
- 在文件夹内右键打开Git Bash
- 执行
touch ~/.bashrc
- 在.bashrc文件中输入:
#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
- 在gitBash中执行
source ~/.bashrc
这样一个指令别名就设置完成啦!
Git的使用
根据上面Git的工作流程图可以知道,要实现版本控制,首先要获得本地仓库
- 在电脑任何位置创建一个空文件夹作为本地Git仓库
- 进入文件夹,右键打开Git Bash
- 执行
git init
,初始化当前文件夹为一个git仓库 - 创建成功则可在当前文件夹下看到一个.git文件夹
Git下文件的几种状态
由上图可见,一个文件可能处于三种状态:1)未暂存;2)暂存;3)提交至仓库。这几种状态之间的转换可以用如下指令来进行控制:
- git add (工作区–>暂存处)
- git commit (暂存区–>本地仓库)
- git status (查看修改的状态)
git add的使用
#将工作区中的一个或多个文件加入到暂存区
git add 单个文件名|通配符(.)
git commit的使用
#将暂存区中的内容提交到本地仓库的当前分支
git commit -m '注释内容(如update xxx;create xxx)'
git log的使用
#查看操作记录(我们在前面为这个指令设置过一个别名,所以我们也可以直接使用git-log)
git log [option]
可供选择的option: --all #显示所有分支
--pretty=online #将操作记录显示为一行
--abbrev-commit #使得输出的commited更简短
--graph #以图的形式显示
git reset的使用
有时我们希望回退到某一版本,可以使用此操作
#切换版本
git reset --hard commentID #commentID可以使用git-log或git log 查看
但是有时候会发现我们想要的提交记录已经删除删除了,此时我们可以尝试使用git reflog
尝试找回
分支
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
查看本地分支
git branch
创建本地分支
git branch xxx
切换分支
git checkout xxx #xxx为分支名
#还可以直接切换到一个当前并不存在的分支(创建+切换一步到位)
git checkout -b xxx
合并分支
#将一个分支上的内容(必须已提交?)合并到另一个分支
git merge xxx
删除分支
#不能删除当前正在使用的分支
git branch -d xxx #做各种检查,看是否能删除
git branch -D xxx #不做任何检查,强制删除
解决合并冲突
当多个分支上同时对同一个文件的同一行进行了修改,这时候需要手动解决冲突,步骤如下:
1. 对发生冲突的位置进行处理
2. 将解决冲突后的文件加入暂存区(git add xxx)
3. 提交仓库(git commit -m 'xxx')
具体开发中分支流程
截止到目前,所有的操作还只是在本地仓库上进行,而Git中另一重要概念远程仓库还未涉及!明天继续写
在文章中使用了黑马程序员的Git讲义中的部分图片,若有侵权,请联系删除,谢谢