Git基础

Git

源码托管平台: github , gitee, gitlab, codepan(一般存储在github私有服务器上)

Git是目前世界最先进的分布式版本控制系统

作用 : 源代码管理

为什么进行源代码管理

        方便多人协同开发[防止代码冲突,相互覆盖]

        方便版本控制[利于以后的开发人员快速了解项目的开发过程,利于需求变更时进行代码回滚]

Git与Svn区别

        SVN是集中式控制管理,也就是SVN有一个中央处理器,开发者需要在本地安装SVN客户端,才能都把代码提交到中央服务器

        Git是分布式的版本控制工具,也就是说没有中央处理器,每个节点的地位平等,每个节点既是服务端也是客户端

SVN

Git

Git的windows下安装

 官方网址:Git - Downloads

        选择对应系统和位数进行下载,之后安装,一路next

Git工作区、暂存区和版本库

1.工作区介绍

        开发电脑磁盘目录

 2. 暂存区介绍

        一般存放[.git] 目录下的index文件(.git/index)中,所以我们把暂存区有时也叫作索引

3.版本库介绍

        工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。git中的head/master是分支,是版本库

git项目仓库的本地创建

        cd 自己希望存储代码的目录路径(pro),并创建本地仓库.git

        新创建的本地仓库.git是个空仓库

        cd ~/Desktop    cd pro           git init .   如果没有声明目录,则自动把当前目录作为git仓库

在ubuntu下可以通过Ctrl + H快捷键,直观地显示隐藏目录,可以看到.git仓库目录的结构:

        branches/  分支管理目录

        confiig        当前项目代码仓库的配置信息

        description 当前项目描述

        HEAD        当前项目仓库的当前版本信息

        hooks/        当前项目仓库的钩子目录[可以利用这个目录下面的文件实现自己拉取代码到服务器] 

        info            仓库相关信息

        objects      仓库版本信息

        refs            引用信息

配置git用户名和邮箱

        针对当前目录所在的.git/config进行配置,只针对当前.git仓库

                git config user.name 'py35'

                git config user.email '12926...'

        针对当前操作系统用户家目录下.gitconfig文件进行全局配置,将来在当前系统下所有git管理代码就会使用该身份

                git config --global user.name 'py35'

                git config --global user.email '12926...'

添加版本记录

        git add .   #  .表示当前目录

        git commit -m "版本历史介绍"

        #  add之后  要接commit

        合并    git commit -a -m "版本历史介绍"

查看仓库状态

        git status

        git status -s    # 简约模式

  • 红色表示新建文件或者新修改的文件,都在工作区. git add 执行之前的效果

  • 绿色表示文件在暂存区,git add 执行以后的效果

查看文件状态

    

(1)未追踪, 文件第一次出现在工作区, 版本库还没有存储该文件的状态(绿色)

(2)已追踪, 只要第一次,git add了文件, 文件就是已追踪

(3)未修改, 文件在工作区未被编辑

(4)已修改, 文件在工作区被修改(红色)

(5)未暂存, 文件已修改, 但是没有add到暂存区

(6)已暂存, 已经将修改的文件add到暂存区(绿色)

(7)未提交, 已暂存的文件, 没有commit提交. 处于暂存区(红色)

(8)已提交, 提交到版本库的文件修改,只有commit以后才会有仓库的版本号生成

添加文件到暂存区

        git add .     把当前目录的所有文件添加到暂存区

        git add 文件1 文件2 文件3    添加指定文件

提交到本地版本库

        git commit -m "版本描述信息"

从暂存区中恢复文件/目录修改

        git  restore  文件  # 注意,只能回滚曾经被git跟踪过版本的文件,对于新增文件是没办法回滚的

查看历史版本[查看日志]

        git log   或者  git reflog

分页展示日志

        git log -p

        退出按   [q]   键

        CTRL + f  向上翻页

        CTRL + b 向下翻页

显示指定日期之后的日志

        git log --after '2020-01-02'

显示指定日期之前的日志

        git log --before '2020-01-02'

指定显示指定开发者的日志

        git log --author ‘lisi’

回退版本

方案一

        HEAD     表示当前最新版本

        HEAD^   表示当前最新版本的前一个版本

        HEAD^^ 表示当前最新版本的前两个版本

        HEAD~1 表示当前最新版本的前一个版本

        git reset --hard HEAD^     

方案二 : 当版本非常多时,可选择的方案

        通过每个版本的版本号回退到指定版本

        git reset --hard 版本号 3a8f3bb

分支管理

git branch    #  查看当前项目的所有分支

 git branch <分支名称>   #  在当前所在分支,新建一个分支,新分支的代码来自于当前分支

git checkout <分支名称>  # 切换分支,如果分支不存在,则报错

git checkout -b <分支名称>  #   新建分支并切换到该分支

git branch -d <分支名称>   # 删除指定分支, 注意 : 必须先退出当前分支

git merge <分支名称>     # 把指定分支下的代码合并到当前所在分支

合并代码过程中如果出现针对同一文件,出现不同版本的修改,就会出现冲突

 一般原则就是:保留先提交的,后提交的代码让步,要保留则写在下方或者不保留则删除掉

gitee平台创建工程

采用https协议连接gitee码云仓库

解决版本冲突

多人开发,出现2个以上提交记录中对同一文件的同一行位置改动,则出现冲突

这种情况往往是开发者提交之前,没有拉取线上最新代码版本情况

修改冲突位置的代码即可

 修改后效果

再次执行add、commit、push即可。开发中一定要先pull,然后在push 

分支管理

所谓的分支,就是把代码复刻成多个不同的版本,在不同的版本下面进行代码的编写,当有需要的时候,可以衍生新的子版本或者把子版本和原有版本进行合并。

1.   列出当前项目的所有分支

        master是git默认的主分支,是默认提供的

        git branch

2. 创建并切换分支到dev

        git branch dev    #  创建代码分支dev

        git chechout dev    # 切换本地分支代码

        简写   ->   git checkout -b dev

        同步分支到线上服务器   :  git push -u origin dev:dev

使用ssh连接数据库

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值