Git巩固总结

1概述

1.1开发中实际场景

一、备份

例如电脑硬盘突然坏了

二、代码还原

开发中功能复杂, 摸索了一星期,改得面目全非,需要改回一周前的模样

三、协同开发

多个人同步开发同个文件

四、追溯问题代码的编写人和编写时间

某个代码出现问题,追责等等。

1.2版本控制器的方式

a、集中式版本控制工具

        集中式版本控制工具,版本库是集中存放在中央服务器的,团队中每个人工作的时候从中央服务器下载代码,是必须联网,局域网或者互联网。个人修改后提交到中央版本库。

举例:SVN和CVS

      这种集中式版本控制工具的缺点是   如果中央服务器宕机了或者出来的网络坏了,就无法使用了。

b、分布式版本控制工具

        分布式版本控制系统没有“中央服务器”,每个人电脑上都是一个完整的版本库,这样工作的时候。所以从某方面来说可以说是不需要联网。多人协作的时候只需要将各自的修改推送给对方,就能互相看到对方的修改了。

举例:Git

1.3Git工作流程图

二 Git安装与常用命令

2.1 Git环境配置

2.1.1 基本配置

打开Git Bash

设置用户信息

        git config --global user.name "itcast"

        git config --global user.email "hello@itcast.cn"

查看配置信息

        git config --global user.name

        git config --global user.email

2.1.2 解决GitBash乱码问题

1.打开GitBash执行下面命令

git config --global core.quotepath false

2.${git_home}/etc/bash.bashrc 文件最后加入下面两行

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

2.2 基础操作指令

Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化

其实说到底就是两个状态的转换

1.git add         (工作区    →        暂存区)

2.git commit    (暂存区   →        本地仓库)

2.2.1 查看修改的状态(status)

git status                查看修改的状态(暂存区、工作区)

2.2.2 添加工作区到暂存区(add)

git add 单个文件名|通配符        添加工作区一个或多个文件的修改到暂存区

例如    将所有的修改加入到暂存区   git add .

2.2.3 提交暂存区到本地仓库(commit)

git commit -m '注释内容'        提交暂存区内容到本地仓库的当前分支

2.2.4 查看提交日志(log)

git log [option]

2.2.5 版本回退

git reset --hard commitID        版本切换

其中commitID 可以使用git log指令查看(不过这个指令一般只能查看当前版本以前的),那么如何查看当前版本以后的呢,    使用git reflog

2.2.6 添加文件至忽略列表

在当前目录创建一个叫做 .gitignore文件(touch ..gitignore),然后在文件中添加相关文件名(vi .gitignore)

2.3 分支

2.3.1 查看本地分支

git branch

2.3.2 创建本地分支

git branch 分支名

2.3.4 切换分支

git checkout 分支名

         git checkout -b 分支名        直接切换到一个分支,如果分支不存在则创建

2.3.5 合并分支

git merge 分支名称

如dev01分支要合并到master分支,则先切换到master分支然后再执行git merge指令

2.3.6 删除分支

不能删除当前分支,只能删除其他分支

git branch -d b1        删除分支时,需要做各种检查

git branch -D b1        不做任何检查,强制删除(场景例如在分支上提交代码但是还没有合并到主分支,此时如果使用-d删除分支则会失败)

2.3.7 解决冲突

当在两个分支上修改同个文件同一行,就会发生冲突,这个时候就需要手动解决冲突,解决冲突如下:

1、处理文件中的冲突

2、将解决完冲突的文件加入暂存区(add)

3、提交到本地仓库(commit)

2.3.8 开发中分支使用原则与流程

在开发中, 一般有如下赋分支使用原则与流程:

1.master(生产)分支

线上分支,主分支

2.develop(开发)分支

是从masrer创建的分支,一般作为开发部门主要开发分支,如果没有其他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支

3.feature/xxx分支

从develop创建的分支,一般是同期并行,但不同期上线时使用创建的分支,后面会合并到develop分支

4.hotfix/xxx分支

从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master\test\develop分支

5.还有一些其他分支,例如test分支(用于代码测试)、pre分支(预上线分支)等等

3 Git远程仓库

一般连接远程仓库,远程仓库为了证明你的身份,有两种方式,一种通过询问你账号密码,另一种通过设置公私秘钥。

3.1 配置SSH公钥

1.生成SSH公钥

        ssh-keygen -t rsa        (rsa是非对称秘钥一个算法)

        不断回车

(如果公钥已经存在,则自动覆盖)

2.Gitee设置账号公钥

        cat ~/.ssh/id_rsa.pub        获取公钥

        比如在gitee中上面导航栏点开设置,在SSH公钥中设置公钥

3.验证是否配置成功

        ssh -T git@gitee.com

3.2 操作远程仓库

3.2.1 添加远程仓库

        先在本地一个目录下初始化本地库git init,然后再执行以下操作与远程库对接

git remote add <远端名称> <仓库路径>

        远端名称,默认是origin,取决于远端服务器设置

        仓库路径,从远端服务器获取此url

3.2.2 查看远程仓库

git remote

3.2.3 推送到远程仓库

git push [-f] [--set-upstream] [远端名称[本地分支名][:远端分支名]]

                如果远程分支名和本地分支名相同,则可以只写本地分支名

                        例如 git push origin master

                -f  表示强制覆盖  不过一般公司会禁止这个

                --set-upstream   推送到远端的同时建立起和远端分支的关联关系

                        例如 git push --sett-upstream origin master

                如果当前分支已经和远端分支关联,就是使用了上面的语句,则可以省略分支名和远端名

                        例如 git push        

3.2.4 本地分支与远程分支的关联关系

                git branch -vv        查看关联关系

3.2.5 从远程仓库克隆

        git clone <仓库路径>[本地目录]

                本地目录可以省略,会自动生成一个目录

3.2.6 从远程仓库中抓取和拉取

        远程分支和本地分支一样,我们可以进行merge操作,只是需要先把远端仓库里的更新都下载到本地,在进行操作。

1.抓取命令

        git fetch [remote name] [branch name]

        抓取指令是将远程仓库里的更新都抓取到本地,不会进行合并

        如果不指定远端仓库名称和分支名,则抓取所有分支

2.拉取命令

        git pull [remote name] [branch name]

        拉取命令就是将远程仓库的修改拉去到本地并且自动合并,等于fetch+merge

        如果不指定远程名称和分支名,则抓取所有并更新当前分支

4 IDEA中使用Git

4.1在IDEA中操作Git

4.1.1本地创建了一个项目,要提交到远程仓库

1.让一个目录变成Git仓库        VCS→Import into Versionn Control→Create Git Repository

(相当于命令行中的git init)

2.当执行上面1的初始化仓库后,IDEA中就会出现Git的几个按钮

(比如其中的√号代表提交git add,git commit)

3.查看日志的话,在IDEA底部的Version Control点一下    然后在控制台那里会出现几个选项页,点击Log即可查看

(相当于命令行中的Git Log)

4.点击IDEA上方导航栏的VCS→Git→Pull,第一次提交会出现一个页面   然后里面显示  master→Define remote,其中Define remote代表没有远程,所以需要点击Define remote设置远程仓库地址

4.1.2 修改项目后推送到远程仓库

点击√号按钮   弹出一个选择文件界面   一般可以通过点击Commit按钮进行提交(不过这个按钮进行了Git add和Git commit),   其实这个Commit按钮有个下拉选项,其中有个Commit and push选项,这个可以更快更快捷的进行提交同时提交到远程仓库。

4.1.3 从远端克隆拉取一个项目到本地

点击VCS→Checkout from Version Control→Git,然后会弹出一个界面,在Url选项中输入远程仓库的地址,在Directory选择自己想存储的本地路径即可

4.1.4 查看分支

点击IDEA右下角一个分叉图片,如下

1.如果要创建新分支,点击上面的按钮后选择New Branch按钮,然后创建即可(不过这种方式其实不推荐)

1.1 还有另一种创建分支的方法,点击下方的额Version Control后选择Log选项卡,然后在日志想要新建分支的日志点右键,选择New→Branch,然后创建即可

4.1.5 合并分支

选择IDEA右下角那个分支按钮,然后选择合并的分支(dev1),要合并到dev2当前分支,那么就在dev1分支点击,然后选择Merge into Current合并到当前分支。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值