Git-分布式版本

git简介

Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务端软件支持。

git作用 git初始化一个本地仓库

 git, 分布式版本控制工具 可以实现软件的版本控制,在多个版本之间切换; 可以实现多分支开发,提高开发效率; 可以实现历史记录,历史状态的恢复; 团队内部实现权限管理等。 初始化本地仓库: 项目根目录下git init

git与svn的区别

分布式:git,能有效解决单点故障,C语言开发

集中式:svn,各个版本存于服务器,易单点故障

Git 不仅仅是版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。

如果你是一个具有使用 SVN 背景的人,你需要做一定的思想转换,来适应 Git 提供的一些概念和特征。

 Git 与 SVN 区别点:

1.Git 是分布式的,SVN 是集中式:这是 Git 和其它非分布式的版本控制系统,最核心的区别,例如 SVN,CVS 等

2.Git 把内容按元数据方式存储,而 SVN 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。

3.Git 分支和 SVN 的分支不同:分支在 SVN 中一点都不特别,其实它就是版本库中的另外一个目录。

4.Git 没有一个全局的版本号,而 SVN 有:目前为止这是跟 SVN 相比 Git 缺少的最大的一个特征。

5.Git 的内容完整性要优于 SVN:Git 的内容存储使用的是 SHA-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

git基本操作

创建仓库

在==项目根目录下==执行如下:

git init

或者克隆远程仓库

git clone url 

设置用户签名

git config --global user.name “jack”
git config --global user.email "[email protected]"

查看当前工作区、暂存区状态

git status

 提交版本

将所有文件增加到暂存区

git add .

将一个文件增加到暂存区

git add test.txt

提交版本到本地仓库

git commit -m "版本号或者描述信息"

查看日志

git log
git log --oneline  # 日志过长时,按行显示

git reflog # 历史操作

版本回退

git reset --hard HEAD^  # 回退到当前版本的前一个版本  HEAD^^表示回退到当前版本的前两个版本
git reset --hard HEAD`1  # 回退到当前版本的前一个版本  HEAD`5表示回退到当前版本的前5个版本
git reset --hard 版本号序号  # 回退到指定的版本

撤销工作区的修改

git checkout  -- <文件名>

撤销暂存区的修改

git reset HEAD <文件名>  # 先撤消暂存区的修改,从暂存区撤回
git checkout -- <文件名>  # 再撤消工作区修改

对比文件的内容

对比本地仓库(HEAD) 与工作区文件的差异

git diff HEAD -- <文件名>

对比两个版本之间某个文件的不同

xxxxxxxxxx git diff HEAD HEAD^ -- <文件名>

删除文件

rm <文件名>

Git分支

 查看分支

git branch -v

创建分支

# 创建分支,不切换
git branch <分支名>
# 切换分支
git switch <分支名>
or
git checkout <分支名>


# 创建分支,并切换  
git checkout -b <分支名>  
# 创建dev分支,并切换
git checkout -b dev 

合并分支到主分支

# 1. 切换到主分支
git checkout master
# 2. 合并分支dev 到主分支
git merge dev

注意:合并分支内容需要先切换到主分支上

删除分支

# 删除一个分支
git branch -d <分支名>  
# 删除dev分支
git branch -d dev

查看合并后的日志
 

git log --pretty=oneline

git 开发模式

Git-分布式版本_第1张图片

master,负责版本发布、历史记录; dev, 负责开发 其他分支,适当的时候合并到dev分支。

你可能感兴趣的:(git,github,分布式)