Git使用教程

SVN区别

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哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。

安装

windows

安装包下载地址:https://gitforwindows.org/

mac

自带

GUI

SourceTree安装包下载地址:https://www.sourcetreeapp.com/

工作流

工作流

工作区、暂存区、版本库

工作区:就是你在电脑里能看到的目录。 暂存区:英文叫stage, 或index。一般存放在 ".git目录下" 下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 版本库:工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

工作流2

仓库

克隆仓库 git clone [url] 克隆仓库是将仓库中的所有分支全部下载下来。

分支

创建分支

git branch [branchname] git checkout -b [branchname]

切换分支

git checkout [branchname]

合并分支

git merge [branchname]

删除分支

git branch -d [branchname]

提交历史

我们使用git log可以看到git过去提交的日志。在日志界面按向下方向键可以查看更久前的信息,按q退出日志界面。

git log命令可以加非常多的参数与选项以帮助我们更快地获得想要的信息。在此不一一赘述。读者可参考https://blog.csdn.net/daguanjia11/article/details/73823617。或是搜索其他博客进行学习。

git status

git的最常用指令,输出当前仓库的状态,并提示我们接下来的操作。

status

在上图中,我们执行git status指令得到: 我们对三个文件进行了修改。其中有一个在暂存区(绿色),另外两个在工作区(红色)

git diff

在上面的例子中,我们知道在工作区中,我们对app/src/main/java/com/live/longsiyang/openglonandroid/picture/glrender/BitmapEffectGLRender.java进行了修改。但我们具体改了哪些内容要如何查看呢?

git diff app/src/main/java/com/live/longsiyang/openglonandroid/picture/glrender/BitmapEffectGLRender.java

即可看到具体到代码层面的修改。

git rebase

merge

rebase

git rebase 可以提供出更加完美的提交树,方便问题的回溯。

PS:rebase 只能在私人分支上完成

常用操作方法

at master :
git pull
git checkout ocean/develop

ocean/develop:
(after commits)
git rebase master
git add -A
git rebase --continue
...

git push origin ocean/develop --force

(request merge to master)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android群英传

一篇文章,教你学会Git

751
来自专栏Android开发经验

mac下SourceTree出现错误:fatal: could not read Username for 'xxx': Device not configured

之前一直都是好的,但是用Android Studio提交代码是可以的。回想了一下,可能是因为捣鼓mac自带的钥匙串,导致SourceTree使用其中存储的密码的...

2312
来自专栏祝威廉

HBase缓存漫谈

上一次重度使用HBase已经是两年前了。HBase能够满足上面五个要求,所以用HBase作为画像体系的主要存储引擎便水到渠成。

1202
来自专栏Petrichor的专栏

git: git操作遇到的坑 & 解决方法

1542
来自专栏影子

关于Springmvc中include与Sitemesh装饰器的基本使用

2907
来自专栏HTML5学堂

Git版本回退、跳转与数据恢复

HTML5学堂-利利:上周,为大家介绍一款“分布式版本控制系统”——Git。除了介绍“分布式”的概念、对比SVN与Git之外,我们讲解了基本的Git初始化与提交...

4527
来自专栏xcywt

记录我开始学习 Git的路程

工作半年多了,总觉得没学到什么东西,于是乎找了个Git学习一下,感觉还蛮厉害的样子。为此记录下我的路程 2015,11,26 更新   前面的路都挺艰难的,在官...

2197
来自专栏java思维导图

Git常用命令速查表(收藏大全)

Git的设置文件为.gitconfig,它可以在用户主目录下(全局配置),也可以在项目目录下(项目配置)。

1203
来自专栏C/C++基础

Linux命令(45)——svn命令

SVN是Apache Subversion的缩写 ,是一个开放源代码的版本控制系统。相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联...

1372
来自专栏影子

关于Springmvc中include与Sitemesh装饰器的基本使用

1172

扫码关注云+社区

领取腾讯云代金券