windows环境下的Git版本控制工具使用说明和规范。
SVN是集中式版本控制系统,版本库集中放在中央服务器上,而干活时用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作。
Git则是分布式版本控制系统,即它就没有中央服务器,每个人的电脑就有一个属于自己的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。最终,各自将本地分支先合并,再将合并后的分支推向同名的远程库。
Git和GitHub的区别:Git是分布式版本管理工具,而GitHub是一个网站,可以在github上建立一个网上仓库,然后提交自己的代码到该网上仓库,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习。
GitHub是一个非常适合程序员交流的网站,很多国际上的技术大牛都在github上有自己的开源代码,其他人只要申请个账号就可以随意的看到这些大牛写的程序。同时国内的很多互联网公司如百度,阿里等也在github上公布有开源的代码。
Git本地有三个工作区域:工作目录、暂存区、资源库。如果加上远程的Git库就可以分为四个工作区域
工作区(Workspace):就是平时存放项目代码的地方
暂存区(Index/Stage):用于临时存放对文件的改动,事实上就是一个文件,保存即将提交到文件列表信息
资源库(Repository):就是安全存放数据的位置,这里有你提交到所有版本的数据,期中HEAD
指向最新放入仓库的版本
远程仓库(Remote Directory):就是托管代码的服务器,简单地说就是项目组中的一台电脑用于远程数据交换
工作区、本地库、远程库三者之间的工作原理及流程如下图:
初次接触Git的用户,请抽出几分钟时间看一下https://git-scm.com/docs 的介绍文档,相信磨刀不误砍柴工。
本文针对Window平台的Git客户端的安装和使用。
Git 下载地址:https://git-scm.com/downloads
window版本下载:https://git-scm.com/download/win
下载完成后,双击进行安装
安装 Git 并选择所有默认选项,安装完毕后,在系统的任意地方右键点击Git Bash Here在命令行工具中运行 git,如果显示使用信息,则安装完成。
在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。
# 设置你的 Git 用户名
git config --global user.name ""
# 设置你的 Git 邮箱
git config --global user.email ""
# 确保 Git 输出内容带有颜色标记
git config --global color.ui auto
# 对比显示原始状态
git config --global merge.conflictstyle diff3
git config --list
Git 与代码编辑器
最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。
#Atom Editor 设置
git config --global core.editor "atom --wait"
#Sublime Text 设置
git config --global core.editor "'C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"
#VSCode 设置
git config --global core.editor "code --wait"
因此,Git管理的文件有三种状态,已修改(modified)、已暂存(staged)、已提交(committed)。
序号 | Git命令 | 说明 |
---|---|---|
1 | git init |
初始化本地版本库。 |
2 | git status |
查看当前工作区和暂存区文件的状态。 |
3 | git add |
可以将文件添加到暂存区。 |
4 | git commit -m ' ' |
提交更新。 |
git init
就是在git中设置当前使用的用户是谁
每一次备份都会把当前备份者的信息存储起来
命令:
git config --global user.name "xiaoming"
git config --global user.email "[email protected]"
查看是否配置成功
工作区、暂存区以及版本库三者之间的关系。
**工作区:**就是你在电脑上看到的目录,比如目录testgit下的所有文件(.git版本库目录除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
**暂存区(stage):**工作区有一个.git隐藏目录,这个不属于工作区,这是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),还有就是Git为我们自动创建的第一个master分支。
在Git中每次提交都分为两个步骤:
第一步:用add命令将文件添加到版本库的暂存区
第二步:用commit命令把暂存区的所有内容提交到当前分支上
git add ./readme.md
所指定的文件放到大门口git add ./
把所有的修改的文件添加到大门口git commit -m "这是对这次添加的东西的说明"
git commit --all -m "一些说明"
–all 表示是把所有修改的文件提交到版本库
git add ./readme.md // 添加暂存区
git commit -m '提交更新说明' // 提交更新
git status // 查看当前状态
当暂存区域已经准备妥当可以提交时,在此之前,请一定要确认还有什么修改过的,或新建的文件还没有git add
到暂存区,否则提交的时候不会记录这些还没暂存起来的变化。
所以,每次准备提交前,先用git status
查看下,需要提交的文件是不是都已暂存起来了,然后再运行提交命令git commit -m '备注信息'
。
git status
/.idea
会忽略.idea文件/js
会忽略js目录里的所有文件/js/*.js
会忽略js目录下所有js文件git log
查看历史提交的日志git log --oneline
可以看到简洁版的日志git reset --hard Head~0
git reset --hard Head~1
git reset --hard [版本号]
git reflog
注意:通过版本号回退到例如第一版,在想退回到第五版时,需要提前记住版本号,这时在第一版打印
git log
历史记录提交日志,是看不见后面的版本记录的。但也不必过于担心,可以通过git reflog
查看版本的切换记录从而得到版本号
Git之所以能实现分布式版本控制,就是基于其分支管理策略。本地库所做的操作都是在某分支上进行的,不同分支之间可以合并。可以拉取远程分支到本地,也可以推送本地分支到远程。
git branch #创建新的分支
git branch -d #删除已有分支
git checkout #切换到其它分支上
git checkout -b #创建并切换分支
git merge #合并branchName分支到当前分支上
git branch -r #查看远程分支
git branch -a #查看远程及本地的所有分支,当前分支前加"*"号
git branch dev
git checkout dev
git branch
可以查看当前有哪些分支注意:如果在当前分支未提交,切换到其他分支,会将修改的文件和状态一同带到切换的分支中
git merge dev
git branch
命令输出的前面有*号的分支工欲善其事必先利其器,工具的熟练掌握、合理利用,修改记录保存完整,后期检索跟踪问题,以及多项目软件切换合并才能简单易操作,才能保证代码的质量。
本地仓库和远程仓库建立连接
git remote add origin <远程库的网址>
把当前分支的内容上传到远程的master分支上
git push [地址] master
git push https://github.com/huoqishi/test112.git master
pull命令拉取远程分支并与本地分支合并
git pull [地址] master
git pull https://github.com/huoqishi/test112.git master
clone命令克隆远程库到本地
git clone <远程库的网址>
示例: git clone https://github.com/huoqishi/test112.git master
echo "# my-study" >> README.md
git init
git add ./README.md
git commit -m 'first commit'
// git commit --all -m 'first commit'
git remote add origin [email protected]:zevs6/my-study.git
git push -u origin master
// git push