git学习笔记

B站学习视频   菜鸟教程    git教程

1.GIT介绍

Git官网    下载:直接点击官网右侧的最新版本下载,它会自动根据电脑版本下载

Git是免费的,开源的分布式版本控制系统。可以快速的处理各种大中小型项目,易于学习,性能快,体积小,方便的暂存区域和多个工作流分支等特性,性能比svn,csv等版本控制工具好。

什么是版本控制:记录文件内容变化,以便查阅特定版本修改的情况,和版本的切换。

为什么需要:当一个人开发项目时,你会遇到要修改代码,但是你又不确定你改代码后不会出现问题,你就会保存一份副本。

但是当进行团队开发时候者就很难操作了,就需要版本控制工具来记录每个人的修改,合并到一起。

分布式版本控制和集中式版本控制的区别:1.分布式的服务器挂了也可以开发,因为版本控制实在本地进行的,等服务器好了就可以提交

                                                                     2.每个客户端保存的都是整个完整的项目(包含历史纪录,更安全)

发展历史:

Git工作机制:

工作区:存放代码的位置

暂存区:工作区修改代码后,可以使用git add把修改添加到暂存区

本地库:可以使用git commit把暂存区提交到本地库,就会生成对应的历史版本。无法删除,除非把整个本地库删了(删库跑路)

 

Git和代码托管中心:

代码托管中心是基于网络服务器的远程代码仓库,也就是远程库

局域网:

  • Git Lab

互联网:

  • GitHub(外网)
  • Gitee 码云(国内)

Git安装

下一步傻瓜式安装就好。安装成功后桌面右键就可以看到Git Gui 和Git bash

Git Gui :图形化界面(用的少)

Git bash:(bash客户端)用这个

在gitcash中使用git --version查看版本。

GIT常用命令:

命令作用
git config --global user.name 用户名设置用户签名
git config --global user.email 邮箱设置用户邮箱
git init初始化本地库
git status查看本地库状态
git add添加到暂存区
git rm --cached 文件名将对应文件移除暂存区
git commit -m "日志信息" 文件名只能提交暂存区文件到本地库,注意日志信息要加“”,不使用-m添加信息,提交时他也会跳出窗口让我们提交
git reflog

查看历史记录

git log查看版本详细信息
git reset --hard 版本号版本穿梭
git restore <文件名>删除工作区对应文件的修改  注意删除的是修改的内容不是整个文件删除
git restore --staged <file>删除暂存区对应文件的修改,工作区文件不变,注意同上

 

1.设置邮箱和用户名

设置邮箱和用户名,可以不用真实的邮箱 (首次安装必须设置否则无法提交代码),签名的作用时区分不同操作者的身份,用户签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。这个用户签名和用来登陆git hub的账号没有任何关系。

可以到用户目录下的.gitconfig文件查看。

2.初始化本地库

在对应目录下打开git bash(或者桌面打开然后再进入对应文件)

执行git init,可以看到再目录下生成一个.git的文件

或者直接使用ll -a命令查看,隐藏文件不能直接使用ll查看。

3.git status 查看本地库状态

On branch master:表示当前再master主分支里

No commits yet:还没提交过东西

nothing to commit (create/copy files and use "git add" to track):没东西可以提交

 

先添加个文件,在bash可以使用vim,编辑完保存

可以使用cat 文件名查看文件内容

使用tail -n 行数 文件名 查看最后一行内容

这时候继续查看本地库状态

Untracked files:
  (use "git add <file>..." to include in what will be committed)  :
表示对应文件存在工作区了但是还没有追踪,需要添加到暂存区
 

4.git add 添加到暂存区

warning: LF will be replaced by CRLF in hell.java.
The file will have its original line endings in your working directory
:表示自动帮我们转化了行末换行符

继续查看状态

表示hello.java存在暂存区了,还提示可以使用git rm --cached 文件名移出暂存区

执行:git rm --cached 文件名,可以看到对应文件被移除暂存区了,不过工作区的文件还是存在的

5.git commit -m 日志信息 文件名

git commit -m 日志信息 文件名:如果不加-m他也会跳出来一个页面让我们填写日志信息

添加后继续查看状态:

表示自上次提交本地没有变化(没新增也没修改删除)

 

6.git reflog 查看历史记录

git log 查看详细信息:一长串2的数字表示版本号,后面还有用户名和邮箱,提交的日志

7.git reset --hard 版本号: 版本穿梭

git reflog查看信息左边就有版本号。

版本穿梭后git log查看不到这个版本后面的版本信息了,git reflog却可以看到

分支

此图片来自B站视频教程

什么是分支:

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。

有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。

好处:1.同上推进多个功能的开发,提高开发效率

   2.各个分支开发过程中。如果一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始就可以了

分支操作

命令名称作用

git branch  分支名

创建分支
git branch  -v 查看分支
git checkout  分支切换分支
git merge  分支名把指定分支合并到当前分支上

1.查看分支

master主分支  34xxxx这个分支的版本号   后面就是日志信息

2.创建分支

可以看到创建了一个hot-fix分支,不过当前分支还是master

2.

3.切换分支 

git checkout  分支

可以看到分支从master切换到了hot-fix上了

在这个分支上的修改不会影响其他分支的内容,切换回其他分支,对应内容也会变成其他分支的内容。

4.合并分支

git merge  分支名

将hot-fix分支合并到master分支上。

正常合并没有冲突

分支的冲突:

产生原因:合并的分支和被合并的分支的通风一个文件的内容被修改并提交了,然后再分支中合并另一个分支,git就不知道该如何合并就产生了冲突。

 

 冲突的解决:

可以使用vim打开冲突文件

 

然后修改文件,把不需要的删除然后保存

然后允许git add添加到暂存库,

然后使用git commit 提交代码:注意这里不能加文件名,不然会出错

看下面。冲突了提交带文件名会提示合并中的代码无法部分提交

其他:合并分支只会修改当前分支下的内容,不会修改另一个分支。

 

git团队协作机制

团队内协作:图片来自开头视频链接

跨团队协作:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值