这是我参与「第四届青训营 」笔记创作活动的的第5天
版本控制Git
在实际开发过程中,我们的项目会有多个版本v1.0, v1.1等,随着版本越来越多,人为管理的开销就越来越大,因此我们希望有一个版本控制工具来协调我们管理项目,版本控制工具有很多,主流的以Git,SVN为主,今天我们就来学习一下Git
在实际使用中,Git主要用的是Git Bash命令行进行配置,其中以linux作为内核,这里我们先介绍一下常用的linux命令
常用的linux命令
- cd:切换到指定目录,如cd ..切换到上一级目录
- pwd:显示当前所在目录的绝对路径
- ls:列出当前目录下的所有文件
- touch:新建一个文件,如touch test.txt
- rm:删除文件或文件夹,如rm test.txt, rm -r directory(删除文件夹)
- mv:移动文件到指定文件夹,如mv test.txt directory(将test.txt文件移动到directory目录)
- mkdir:新建文件夹
- clear:清屏
- history:查看历史输入命令
- help:获取帮助
- exit:退出命令行
Git配置
git congfig -l 显示当前的git配置
git config --system --list 显示系统为你设定的配置
git config --global --list 显示用户自己设定的配置
实际上这些配置信息都保存在对应的文件中,我们也可以直接修改文件内容。
系统的配置文件gitconfig保存在git安装目录下 etc/gitconfig
用户的配置文件.gitconfig保存在C:/users/(你window登录的用户名)/.gitconfig(这个文件只有你设置了user.name或user.email才会生成)
我们安装好Git的第一件事就是配置user.name以及user.email,因为我们是用Git提交代码,你是谁并提交了这段代码是需要在日志上记录的。用下面的命令设置:
git config --global user.name "yourname" #你的用户名
git config --global user.email "youreamil" #你的邮箱
Git操作
- 新建仓库
git init #初始化一个仓库
git clone [url] #从远程仓库复制
提交文件
git add [filename] #添加指定文件到暂存区
git add . #添加所有文件到暂存区
将文件提交到Stage(暂存区),如常用的git add .将当前目录下所有文件提交到Stage,这时文件状态为staged
git commit -a -m "message" #-m是强制选项,写你文件的提交信息
将暂存区的文件提交到Responsity(本地仓库),每次提交都要附加message,如版本信息v1.08这种,或者这次更新的内容之类的。
git status [filename] #查看指定文件状态
git status #查看所有文件状态
查看所有的文件状态,在git中文件通常有4种状态
- Untracked :文件没有被追踪,表示文件还没有通过git add添加
- Modified: 本地仓库中有该文件,且该文件在本地已被修改
- Unmodified: 本地仓库中有该文件,且没有变化
- Staged: 提交到暂存区的文件
- .gitignore文件
在提交文件时,我们可能并不需要把全部的本地文件提交,可以适当的过滤一些工具文件或者库文件之类的,就可以使用到.gitignore文件,在里面配置你需要过滤的文件。
分支
项目代码在多人进行开发时,如果有人在开发时,其他成员对仓库进行了修改,就很有可能导致代码之间的冲突,并为此就需要使用分支来协调工作,分支可以相当于把项目复制一份,你在这上面修改不会影响到其他分支。
项目稳定的版本一般发行在master主分支上,其他分支可以用于发行不同的版本。
git branch #查看所有分支
git branch -r #查看远程的分支
git branch [branch] #新建一个分支
git branch -d [branch] #删除分支
git checkout [branch] #切换到指定分支
git merge [branch] #合并指定的分支到当前分支
git push origin --delete [branch] #删除远程仓库的分支
其他常用指令
git log #查看已经提交的信息
git reset --hard commit_id #恢复到对应commit_id的状态
git push origin #提交代码到远程仓库
git pull # 从远程仓库拉取代码
每次commit提交完成后都会生成唯一的commit_id,如果我们想要恢复到历史的某个状态,就可以用git reset --hard commit_id恢复。