Git介绍
一、Git是什么?
Git是目前世界上最先进的分布式版本控制系统。
分布式:Git版本控制系统是一个分布式的系统,是用来保存工程源代码历史状态的命令行工具。
保存点:Git的保存点可以追踪源码中的文件, 并能得到某一个时间点上的整个工程项目的状态;可以在该保存点将多人提交的源码合并, 也可以回退到某一个保存点上。
Git离线操作性:Git可以离线进行代码提交,因此它称得上是完全的分布式处理,Git所有的操作不需要在线进行;这意味着Git的速度要比SVN等工具快得多,因为SVN等工具需要在线时才能操作,如果网络环境不好, 提交代码会变得非常缓慢。
Git基于快照:SVN等老式版本控制工具是将提交点保存成补丁文件,Git提交是将提交点指向提交时的项目快照,提交的东西包含一些元数据(作者,日期,GPG等)。
Git的分支和合并:分支模型是Git最显著的特点,因为这改变了开发者的开发模式,SVN等版本控制工具将每个分支都要放在不同的目录中,Git可以在同一个目录中切换不同的分支。
分支即时性:创建和切换分支几乎是同时进行的,用户可以上传一部分分支,另外一部分分支可以隐藏在本地,不必将所有的分支都上传到GitHub中去。
分支灵活性:用户可以随时创建、合并、删除分支,多人实现不同的功能,可以创建多个分支进行开发,之后进行分支合并,这种方式使开发变得快速、简单、安全。
二、Git客户端下载
我们可以从官网下载,官网下载链接如下:
点击打开官网下载链接
如果我想查看分支合并的情况的话,需要使用命令 git log
3.分支管理策略。
通常合并分支时,git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式。首先我们来做demo演示下:
- 创建一个dev分支。
- 修改readme.txt内容。
- 添加到暂存区。
- 切换回主分支(master)。
- 合并dev分支,使用命令 git merge –no-ff -m “注释” dev
- 查看历史记录
Git基本常用命令如下:
||~命令||注释||
|| mkdir|| XX (创建一个空目录 XX指目录名)||
|| pwd|| 显示当前目录的路径 ||
||git init || 把当前的目录变成可以管理的git仓库,生成隐藏.git文件||
||git add XX || 把xx文件添加到暂存区去||
||git commit –m "XX" || 提交文件 –m 后面的是注释||
||git status ||查看仓库状态 ||
||git diff XX ||查看XX文件修改了那些内容 ||
||git log ||查看历史记录 ||
||git reset --hard HEAD^ || 回退到上一个版本 ||
|| git reset --hard HEAD~ || 回退到上一个版本||
||git reset –hard HEAD~100 ||回退到100个版本 ||
|| cat XX|| 查看XX文件内容 ||
||git reflog ||查看历史记录的版本号id ||
||git checkout -- XX ||把XX文件在工作区的修改全部撤销 ||
||git rm XX ||删除XX文件 ||
|| git remote add origin /url/ || 关联一个远程库 ||
|| git push –u origin master||(第一次要用-u 以后不需要) 把当前master分支推送到远程库 ||
||git clone /url/ || 从远程库中克隆||
|| git checkout –b dev||创建dev分支 并切换到dev分支上 ||
|| git branch|| 查看当前所有的分支||
||git checkout master ||切换回master分支 ||
||git merge dev ||在当前的分支上合并dev分支 ||
|| git branch –d dev||删除dev分支 ||
||git branch name ||创建分支 ||
||git stash ||把当前的工作隐藏起来 等以后恢复现场后继续工作 ||
||git stash list|| 查看所有被隐藏的文件列表||
||git stash apply ||恢复被隐藏的文件,但是内容不删除||
||git stash drop|| 删除文件||
||git stash pop|| 恢复文件的同时 也删除文件||
||git remote ||查看远程库的信息||
||git remote –v ||查看远程库的详细信息||
||git push origin master ||Git会把master分支推送到远程库对应的远程分支上||
图文主要来源:http://www.cnblogs.com/smuxiaolei/p/7484678.html
网友评论