Git 安装使用以及命令详解
一、简介及下载安装
Git是目前世界上最先进的分布式版本控制系统
作者 Linus Torvalds(林纳斯·托瓦兹)
关于git的发展史感兴趣可以自行百度,这里不再详细描述,接下来直接开撸
下载地址:https://git-scm.com/downloads 下载对应os版本等即可

按照提示选择默认配置下一步,完成即可。
二、本地仓库配置及相关操作
安装完成后,还需要最后一步设置,在命令行输入如下:
MINGW32 /e/git-home/home1
$ git config --global user.name "zhanh247"
MINGW32 /e/git-home/home1
$ git config --global user.email ""
Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
C:\Users\admin路径下的.gitconfig文件里面可以看到
--global 表示全局属性,所有的git项目都会共用属性
关于GIT的开发流程,我们可以用如下图来简单描绘

下面正式进入git相关操作及常用命令
git init 在项目文件夹内初始化本地仓库
git status         查看当前目录下的文件状态
git add <文件名>   将文件添加到暂存区
git commit      编写注释 ,提交到本地仓库
git commit  –m “注释内容”  直接带注释提交
git log  <文件名>                    进行查看历史记录
git log --pretty=oneline  <文件名>   简易信息查看
git reset  --hard HEAD^    回退到上一次提交
git reset  --hard HEAD~n   回退n次操作
git reflog  <文件名>        查看历史记录的版本号
git reset  --hard  版本号   回退到对应的历史版本
git checkout  -- <文件名>   还原文件
要从git上删除文件,需要先删除文件,再git add 再提交
工作区(Working Directory):就是你电脑本地硬盘目录
本地库(Repository):工作区有个隐藏目录.git,它就是Git的本地版本库
暂存区(stage):一般存放在"git目录"下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)
git branch <分支名> 创建分支
git branch –v  查看分支
git checkout  <分支名>  切换分支
git checkout  –b  <分支名>
git checkout  master  先切换到主干
git merge  <分支名>  合并分支
冲突:一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。
合并时冲突:程序合并时发生冲突系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。
解决冲突:通过git diff 可以找到发生冲突的文件及冲突的内容。
然后修改冲突文件的内容,再次git add <file> 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。
三、github托管及上传
GitHub是一个Git项目托管网站,主要提供基于Git的版本托管服务
网址:https://github.com/

增加远程地址
git remote add  <远端代号>   <远端地址> 。
<远端代号> 是指远程链接的代号,一般直接用origin作代号,也可以自定义。
<远端地址> 默认远程链接的url
例: git  remote  add  origin  https://github.com/user111/Helloworld.git
推送到远程库
git  push   <远端代号>    <本地分支名称>。
 <远端代号> 是指远程链接的代号。
 <分支名称>  是指要提交的分支名字,比如master。
例: git  push  origin  master
从GitHub上克隆一个项目
git  clone   <远端地址>   <新项目目录名>。
<远端地址> 是指远程链接的地址。
<项目目录名>  是指为克隆的项目在本地新建的目录名称,可以不填,默认是GitHub的项目名。
命令执行完后,会自动为这个远端地址建一个名为origin的代号。
例 git  clone  https://github.com/user111/Helloworld.git   hello_world
从GitHub更新项目
git  pull   <远端代号>   <远端分支名>。
<远端代号> 是指远程链接的代号。
<远端分支名>是指远端的分支名称,如master。 
例 git pull origin  master
协作冲突:在上传或同步代码时,由于你和他人都改了同一文件的同一位置的代码,版本管理软件无法判断究竟以谁为准,就会报告冲突,需要程序员手工解决。
