版本控制软件之Git

简介: 一、什么是版本控制版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

一、什么是版本控制

版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。
  • 实现跨区域多人协同开发
  • 追踪和记载一个或者多个文件的历史记录
  • 组织和保护你的源代码和文档
  • 统计工作量
  • 并行开发、提高开发效率
  • 跟踪记录整个软件的开发过程
  • 减轻开发人员的负担,节省时间,同时降低人为错误
  • 简单说就是用于管理多人协同开发项目的技术。

二、常见的版本控制器

主流的版本控制器有如下这些:(现在影响力最大且使用最广泛的是Git与SVN)
  • Git
  • SVN(Subversion)
  • CVS(Concurrent Versions System)
  • VSS(Micorosoft Visual SourceSafe)
  • TFS(Team Foundation Server)

三、版本控制分类

  • 本地版本控制
    -- 记录文件每次的更新,可以对每个版本做一个快照,或是记录补丁文件,适合个人用,如RCS。
  • 集中版本控制
    -- 所有的版本数据都保存在服务器上,协同开发者从服务器上同步更新或上传自己的修改所有的版本数据都存在服务器上,用户的本地只有自己以前所同步的版本,如果不连网的话,用户就看不到历史版本,也无法切换版本验证问题,或在不同分支工作。而且,所有数据都保存在单一的服务器上,有很大的风险这个服务器会损坏,这样就会丢失所有的数据,当然可以定期备份。代表产品:SVN、CVS、VSS
  • 分布式版本控制
    -- 所有版本信息仓库全部同步到本地的每个用户,这样就可以在本地查看所有版本历史,可以离线在本地提交,只需在连网时push到相应的服务器或其他用户那里。由于每个用户那里保存的都是所有的版本数据,只要有一个用户的设备没有问题就可以恢复所有的数据,但这增加了本地存储空间的占用。

四、Git与SVN最主要区别

  • SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。
  • Git是分布式版本控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网了,因为版本都在自己电脑上。协同的方法是这样的:比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

五、Git的下载安装

打开 git官网,下载git对应操作系统的版本。按照系统的提示默认安装就ok!

六、基本操作命令

cd                      ---改变目录。
cd ..                   ---回退到上一个目录,直接cd进入默认目录
pwd                     --- 显示当前所在的目录路径。
mkdir                   ---创建文件夹
rm -rf 目录名称          ---删除目录下的所有文件、文件夹
rm -r 文件              ---删除文件
ls                      ---查看文件
ls -la                  ---查看文件、隐藏文件
vi 文件名                ---创建并打开文件
a                       ---编辑模式
ESC                     ---退出编辑模式
ZZ                      ---保存
cat filename            ---查看文件内容
clear                   ---清屏
history                 ---查看命令历史

七、Git核心工作流程

Git本地有三个工作区域:工作目录(Working Directory)暂存区(Stage/Index)资源库(Repository或Git Directory)。如果在加上远程的git仓库(Remote Directory)就可以分为四个工作区域。文件在这四个区域之间的转换。

  • Workspace:工作区,就是你平时存放项目代码的地方
  • Index / Stage:暂存区,用于临时存放你的改动,事实上它只是一个文件,保存即将提交到文件列表信息
  • Repository:仓库区(或本地仓库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本
  • Remote:远程仓库,托管代码的服务器,可以简单的认为是你项目组中的一台电脑用于远程数据交换

7.1 git最基本的5个指令:

  • git init,初始化,表示即将对当前文件夹进行版本控制。
  • git status,查看Git当前状态,如:那些文件被修改过、那些文件还未提交到版本库等。
  • git add 文件名,将指定文件添加到版本库的暂存状态。
  • git commit -m '提交信息',将暂存区的文件提交到版本库。
  • git log,查看提交记录,即:历史版本记录
7.2 丢弃工作区文件
  • git checkout -- filename ,丢弃工作区指定文件内容
  • git checkout -- . ,丢弃工作区所有文件内容
7.3 版本回滚操作
  • git reset --soft 版本号 ,回滚到指定版本
  • git reset 版本号 ,回滚到指定版本
  • git reset --hard 版本号 ,回滚到指定版本,将之前的删除(慎用)
  • git reflog ,找到所有的历史记录
  • git reset HEAD ./filename ,从暂存区回到工作区
7.4 标签操作
  • git tag "标签名" ,给最新版本加标签
  • git tag "标签名" 版本号 ,给历史版本加标签
  • git tag -d "标签名" ,删除标签
  • git show "标签名" ,查看标签内容
7.5 分支操作
  • git branch 分支名称 创建分支
  • git checkout 分支名称 切换分支
  • git branch -m 分支名称 创建并切换到指定分支
  • git branch 查看所有分支
  • git branch -d 分支名称 删除分支
  • git merge 分支名称 将指定分支合并到当前分支
7.6 push代码
  • git remote add origin https://github.com/wangjifei/pondo.git , 为地址起一个别名origin(仅第一次需要)
  • git remote remove origin,取消本地目录下关联的远程库:
  • git push origin master , 将本地master分支内容以及版本信息推送到GitHub
7.7 clone代码
7.8 拉代码
  • git checkout dev ,切换到dev分支
  • git pull origin dev , 从远程GitHub仓库获取dev分支最新内容,并合并到本地
    【git pull origin 分支】命令等同于【git fetch origin 分支】+ 【git merge origin/分支】

更多详情:
http://www.cnblogs.com/syp172654682/p/7689328.html(细而全,但略显复杂)
https://www.cnblogs.com/wupeiqi/p/7295372.html(简洁生动)

相关文章
|
3月前
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
2月前
|
存储 Linux 开发工具
掌握版本控制的艺术:Git 技巧深度解析
在软件开发中,版本控制对于代码管理和团队协作至关重要。Git 作为最流行的分布式版本控制系统,凭借其强大的功能和灵活性成为开发者必备工具。本文深入探讨 Git 的高级技巧和最佳实践,包括交互式暂存、撤销提交、合并冲突处理等,帮助你更高效地使用 Git。通过遵循清晰的提交信息、保持提交原子性、利用分支开发等最佳实践,开发者可以更好地管理代码库,提升协作效率。
|
2月前
|
安全 开发工具 git
git合并错了,我想回退到之前的版本
git合并错了,我想回退到之前的版本
|
5月前
|
开发工具 数据中心 git
详解IDEA git 版本回滚
详解IDEA git 版本回滚
234 0
|
6月前
|
项目管理 开发工具 git
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
75 1
|
6月前
|
程序员 Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
|
2月前
|
开发工具 git 开发者
掌握版本控制的艺术:Git 与 GitHub 的高效使用指南
在软件开发中,版本控制对于代码管理和团队协作至关重要。本文详细介绍了 Git 的核心概念与命令,包括初始化、创建仓库、文件跟踪、分支管理和远程仓库操作。同时,探讨了如何利用 GitHub 进行项目组织、代码审查及自动化工作流。通过遵循最佳实践,如频繁提交、清晰的信息记录和合理使用分支,开发者可以提升工作效率和团队协作能力,确保项目的持续成功。
|
2月前
|
图形学 开发工具 git
Unity与版本控制:游戏开发团队如何利用Git打造高效协作流程,实现代码管理的最佳实践指南
【8月更文挑战第31天】版本控制在软件开发中至关重要,尤其在Unity游戏开发中,能提升团队协作效率并避免错误。本文介绍如何在Unity项目中应用版本控制的最佳实践,包括选择Git、配置项目以排除不必要的文件、组织项目结构、避免冲突、规范提交信息以及使用分支管理开发流程,从而提高代码质量和团队协作效率。
210 1
|
3月前
|
项目管理 开发工具 git
|
4月前
|
开发工具 git
unable to index file ‘~$git提交版本号.xlsx‘
unable to index file ‘~$git提交版本号.xlsx‘