Git版本控制工具

Git

前言

当进入到公司进行多人合作开发项目的时候,版本控制工具是必不可少的.
版本控制是一种记录一个或若干文件内容变化,是对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理,是软件配置管理的核心思想之一.
版本控制工具目前主要的就是两个SvnGit .两者类似但不完全相同,本篇文章主要讲的是Git.

一、Git 的概念

Git: 一个开源的分布式版本控制系统,可以有效、高速地处理有小到非常大地项目版本管理.

  • 工作区:仓库的目录,工作区是独立于各个分支的.
  • 暂存区:数据暂时存放的区域,类似于工作区写入版本库前的缓存区,暂存区也是独立于各个分支的.
  • 版本库:存放所有提交到本地仓库的代码版本
  • 版本结构: 树结构,树中的每个节点代表一个代码版本.
    如下图所示:
    请添加图片描述

二、Git命令

2.1 全局命令

  1. git config --global user.name xxx :设置全局用户名,信息记录在~/.gitconfig中
  2. git config --global user.email xxx@xxx.com:设置全局邮箱地址,信息记录在~/.gitconfig中
  3. 以上两个在终端只需要设置一次,要修改也可以vim ~/.gitconfig进行修改.
    请添加图片描述
  1. git init:将当前目录配置为git 仓库,创建.git文件,并将信息记录在.git文件夹中.
  2. .git文件夹的信息
    COMMIT_EDITMSG FETCH_HEAD HEAD ORIG_HEAD config description hooks/ index info/ logs/ objects/ refs/
    请添加图片描述

2.2 常用命令

命令描述
git add xxx将文件xxx加入到暂存区
git reset xxx将文件从暂存区返回工作区
git restore xxx / git checkout xxx将工作区的修改全部撤销
git commit -m “备注信息”将暂存区的内容提交到当前分支
git log查看当前分支所有的版本
git reflog查看HEAD指针的移动历史
git remote add origin 远程仓库地址连接到远程仓库
git remote -v查看当前的远程仓库信息
git push将当前分支推送到远程仓库
git pull/git fetch将远程仓库拉取到本地仓库
git status当前仓库的状态

2.3 查看命令

命令描述
git log查看当前分支的所有版本
git reflog查看HEAD指针的移动历史
git diff xx查看xx文件相对于暂存区修改了哪些内容
git status查看当前仓库的状态
git branch查看仓库的分支信息
git remote -v查看当前的远程连接信息

2.4 撤销命令

命令描述
git reset xxx将xxx文件从暂存区返回到工作区
git checkout xxx / git restore xxx将xxx文件的修改撤销(xxx文件在工作区)
git reset --hard HEAD^将代码库回滚到上一版本
git reset --hard 版本号回滚到某一特定的版本

2.5 远程仓库

命令描述
git remote add origin 远程仓库地址将本地仓库连接到远程仓库
git remote -v查看远程分支的信息
git remote remove origin取消连接远程仓库
git push将当前分支推送到远程仓库
git push --set-upstream origin master将本地的主分支推送到远程仓库的主分支上
git clone ssh/url将远程仓库拉取到当前目录
git pull/git fetch将远程仓库于本地仓库的当前仓库合并
git push -d origin branch_name删除远程仓库的分支

2.6 分支命令

命令描述
git branch查看分支信息
git branch branch_name创建新分支
git checkout branch_name切换branch_name分支
git merge branch_name将分支branch_name合并到当前分支
git branch -d branch_name删除本地分支
git push -d origin branch_name删除远程仓库的分支
git checkout -t origin/branch_name将远程仓库的分支拉取到本地

三、Git与Svn的区别

3.1 Git是分布式的,SVN是集中式的

Git是分布式的,所有Git支持离线工作,可以在本地进行很多操作,SVN是集中式的,必须要联网才能进行正常工作.请添加图片描述

3.2 Git复杂概念多,SVN简单易上手

Git的命令很多,例如add commit status fetch push等命令

3.3 Git分支廉价,SVN分支昂贵

  • 分支:使用意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。
  • Git有本地分支,SVN无本地分支.当你在公司正在写一个任务A时,突然临时接到另一个任务B需要紧急处理,但任务A还没完成,这个时候任务A和任务B要处理同一个代码时,但任务A已经写一部分了,如果用SVN的话只能将这块代码撤销到初始版本才能进行任务B的操作,但用Git的分支就可以直接先从Matser主分支重新创建一个分支去完后任务B,任务B完成后再来完成任务A.

4.总结

目前SVN还是很多公司用的,SVN简单易懂,在面对中小项目的时候加上其图形界面,SVN还是挺受欢迎的(目前我呆的公司用的就是SVN),但Git确实根据分支这一步还是比SVN稍占优势.Git和SVN都有各自好处,所有两者都是比较好的版本控制工具.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值