Git教程

为什么要学习Git?

无论是单人开发还是多人开发,都必须要设计版本管理.
我们今天开发到了A版本,但是第二天我们已经把A改的面目全非了,这时候出了错,或者改了需求,我们想要退回A版本怎么办?
在A做好的时候就把A版本存起来,后面有问题直接回滚成版本A.
Git的作用还不止于此,还用于多人协作.

在这里插入图片描述
D://repo1被称为工作区(除了.git的部分)
D://repo1//.git被称为版本库(repository)
版本库里面又有stage(暂存区)和branch(分支)

共享代码和合并代码的时候,就需要一个远程仓库

分支

所谓分支,说白了就是一条时间线,每次git commit形成一个个版本,一个个版本一次存储在分支的一个个提交点上.
一个branch分支就是一条时间线
不建议一直都在master主分支上提交,我们把它保护的很好,只有很重要的commit到master分支中
我们新建一个开发分支,确定稳定以后,才移植到master分支上,也就是说,master上所有版本都是相对稳定的.
如何创建分支呢?

git branch dev
创建了一个叫dev的分支

在这里插入图片描述

*表示你现在在使用的是master分支
如何切换到dev分支呢?

git checkout dev


哪一个分支都有一个指针,指向最新的版本.
当你新建一个分支的时候,实际上是先新建了一个指针.
分支之所以叫分支,是因为当你新建这个分支的瞬间,这个分支包含了前面分支的所有提交点.真的是分支的概念

分支的合并

Git的工作流程

我们来看Git的工作流程:
一般工作流程如下:
1.克隆Git资源作为工作目录
2.在克隆的资源上添加或者修改文件
3.如果其他人修改了,你可以更新资源
4.在提交前查看修改
5.提交修改
6.在修改完成后,如果发现错误,可以撤回提交并且再次修改并提交

基本概念

我们先来理解一下Git工作区,暂存区,版本库的概念:

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

下面这个图展示了工作区\版本库中的暂存区和版本库之间的关系

Git基本操作

Git的工作就是创建和保存你项目的快好以及与之后的快照进行对比.
Git常用的是如下6个命令:git clone, git push, git add,git commit,git checkout, git pull后面会详细介绍
在这里插入图片描述
在这里插入图片描述
workspace:工作区
staging area:暂存区/缓存区
local repository:本地仓库
remote repository:远程仓库

实际开发中Git的使用

项目经理开始的时候在IDEA中新建一个开发的项目,然后新建一个.gitignore文件,告诉每个local的Git在add,commit,push的时候要忽略哪些文件.项目经理然后创建一些包,做一些简单的初始内容.一般来说,都是空的.然后做一次提交,作为初始化,这样本地仓库就建好了.然后项目经理会建好所有的分支,然后把本地项目push传到远程(组内的Git服务器)私有仓库.注意要把所有branch都push了.然后将开发组员拉入到这个私有仓库的开发人员列表中.
然后在远程这儿要做一个主分支的保护,把它状态定义成保护分支,这样只有管理员(项目经理)可以向master分支push成熟稳定的版本.
然后开发程序员克隆仓库,更新,写代码,push.

开发人员怎么做呢?
1.先clone远程库,获得项目.建立本地仓库.
2.在本地上commit,然后push到远程
3.需要更新项目内容的时候,通过pull从远程仓库拉取内容
4.每次在push内容到远程之前,都要先pull一把!把远程最新内容合并到本地,合适本地内容和远程内容是否有冲突!
程序员要保证一定在本地合并!!!这样有冲突了好解决!解决冲突以后push到远程!(在push之前,先pull!!!)

一个简单操作

$ git init
$ git add 
$ git commit

git init 初始化仓库
git add 添加文件到暂存区
git commit 将暂存区内容添加到仓库中

创建仓库命令

下表列出了git创建仓库的命令:
git init 初始化仓库
git clone拷贝一份远程仓库,也就是下载一个项目

提交与修改

Git的工作就是创建和保存以你项目的快照与之后的快照进行对比:
下表列出了有关创建与提交你的项目的快照的命令:

git add:添加文件到仓库
git status:查看仓库当前的状态,显示有变更的文件
git diff: 比较文件的不同,也就是暂存区和工作区的差异
git commit :提交暂存区到本地仓库
git reset:回退版本
git rm:删除工作区文件
git mv:删除工作区文件

提交日志

git log:查看历史提交记录

git blame<file> 以列表形式查看指定文件的历史修改记录

远程操作

git remote 远程仓库操作
git fetch 从远程获取代码库
git pull 下载远程代码并合并
git push 上传远程代码并合并

Git分支管理

几乎每一版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.
有人把Git的分支模型称为必杀技特性,而正是因为它,将Git从版本控制系统家族里区分出来

创建分支命令:
git branch(branchname)

切换分支命令
git checkout(branchname)

当你切换分支的时候,Git会用该分支的最后提交的快照替换你的工作目录的内容,所以多个分支不需要多个目录

合并分支的命令:

git merge

你可以多次合并到统一分支,也可以选择在合并之后直接删除被并入的分支
开始前我们先创建一个测试目录:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值