git使用教程

一、git简单介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持。
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 资源作为工作目录。
在克隆的资源上添加或修改文件。
如果其他人修改了,你可以更新资源。
在提交前查看修改。
提交修改。
在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
这里写图片描述
我们先来理解下Git 工作区、暂存区和版本库概念
工作区:就是你在电脑里能看到的目录。
暂存区:英文叫stage, 或index。一般存放在”git目录”下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。
下面这个图展示了工作区、版本库中的暂存区和版本库之间的关系:这里写图片描述
首先介绍基本的操作:
1、创建仓库
- 创建仓库git init,在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。git init newrepo使用我们指定目录作为Git仓库。初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
- 我们使用 git clone 从现有 Git 仓库中拷贝项目,克隆仓库的命令格式为:git clone ,如果我们需要克隆到指定的目录,可以使用以下命令格式:git clone ,repo:Git 仓库,directory:本地目录。- git clone远程仓库 gitclonegit://github.com/schacon/grit.gitgrit.git git clone git://github.com/schacon/grit.git mygrit
2、如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:
$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'

以上命令将目录下以 .c 结尾及 README 文件提交到仓库中。
3、git status 以查看在你上次提交之后是否有修改。$ git status -s,以获得简短的结果输出。
4、git diff
执行 git diff 来查看执行 git status 的结果的详细信息。
git diff 命令显示已写入缓存与已修改但尚未写入缓存的改动的区别。git diff 有两个主要的应用场景。
尚未缓存的改动:git diff
查看已缓存的改动: git diff –cached
查看已缓存的与未缓存的所有改动:git diff HEAD
显示摘要而非整个 diff:git diff –stat
git status 显示你上次提交更新后的更改或者写入缓存的改动, 而 git diff 一行一行地显示这些改动具体是啥。
5、git commit
使用 git add 命令将想要快照的内容写入缓存区, 而执行 git commit 将缓存区内容添加到仓库中。Git 为你的每一个提交都记录你的名字与电子邮箱地址,所以第一步需要配置用户名和邮箱地址。$ git config --global user.name 'runoob'
$ git config --global user.email test@runoob.com

我们使用 -m 选项以在命令行中提供提交注释。 $ git commit -m ‘第一次版本提交,现在我们已经记录了快照。如果我们再执行 git status:没有做任何改动。如果你觉得 git add 提交缓存的流程太过繁琐,Git 也允许你用 -a 选项跳过这一步。命令格式如下:git commit -a
6、git reset HEAD
git reset HEAD 命令用于取消已缓存的内容。
7、git rm
git rm 会将条目从缓存区中移除。这与 git reset HEAD 将条目取消缓存是有区别的。 “取消缓存”的意思就是将缓存区恢复为我们做出修改之前的样子。
默认情况下,git rm file 会将文件从缓存区和你的硬盘中(工作目录)删除。
如果你要在工作目录中留着该文件,可以使用 git rm –cached:
8、 git mv
git mv 命令做得所有事情就是 git rm –cached 命令的操作, 重命名磁盘上的文件,然后再执行 git add 把新文件添加到缓存区。
我们先把刚移除的 README 添加回来:

分支管理:
几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把 Git 的分支模型称为”必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。
1、创建分支命令:git branch (branchname)
2、切换分支命令:git checkout (branchname)
3、列出分支:git branch
4、删除分支:git branch -d (branchname)
5、合并分支命令:git merge一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:
我们也可以使用 git checkout -b (branchname) 命令来创建新分支并立即切换到该分支下,从而在该分支中操作。
查看历史:
1、Git 查看提交历史$ git log列出历史提交记录;可以使用$ git log --oneline来查看历史记录的简洁的版本。我们还可以用 –graph 选项,查看历史中什么时候出现了分支、合并$ git log --oneline --graph。如果只想查找指定用户的提交日志可以使用命令:git log –author ,$ git log --author=lys --oneline -5

三、高级使用

1、忽略文件
2、代码回滚
3、

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值