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/

工作流

Git使用教程_第1张图片
工作流

工作区、暂存区、版本库

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

Git使用教程_第2张图片
工作流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的最常用指令,输出当前仓库的状态,并提示我们接下来的操作。

Git使用教程_第3张图片
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使用教程_第4张图片

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

git rebase

Git使用教程_第5张图片
merge
Git使用教程_第6张图片
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)

你可能感兴趣的:(Git使用教程)