Git学习笔记

1. 版本控制

Git就是一个开源的分布式版本控制系统.负责项目的版本管理

1.1 什么是版本控制

在项目开发过程中,我们不停的添加内容进行,在这过程中,我们会形成很多版本的项目。版本控制就是能够记录我们项目的历史记录,进行备份保存,我们可以很方便的对历史记录进行读取。
最大的优点:是一种管理多人协同开发项目的技术。

1.2 常见版本控制工具

1. 用的最多的是三个:RCS,SVN和Git

  • RCS:本地版本控制,适用于个人
  • SVN: 集中式版本控制,服务器有全部的数据。版本数据都存储在服务器,需要同步更新修改记录,但是服务器损坏,数据全部丢失。
  • Git:分布式版本控制,每个人都有全部的数据。在本地和服务器都有一个数据的备份,抗风险能力更好。
    2. Git和SVN的区别
    1)SVN是集中式版本控制系统,数据放在中央服务器,需要不时向服务器更新数据。必须联网,对宽带要求高,服务器崩了,有丢失数据的风险。
    2) Git是分布式版本控制系统,数据在本地和和服务器都有备份。每个合作成员都有全部的历史数据,可在无网络情况下进行,在有网时上传,抗风险能力高。

2. Git环境配置

- 下载地址

镜像网站下载地址:镜像网站

- 安装
无脑安装,全部默认。卸载流程:先删除环境变量中Git信息,再一键卸载

- 启动GIt
1. 三个程序
1)Git Bash:Unix和Linus风格的命令行,使用最多,推荐最多
2)Git CMD :Window风格命令行
3)Git GUI :图形界面Git,初学者不适用

2. 常用的Linux命令(要多用才记得住)

目录相关
1)cd: 改变目录
2)cd… 回到上一个目录,直接cd,进入默认目录
3)pwd: 显示当前所在目录路径

文件相关

  1. touch index.js :新建一个文件index.js
  2. rm index.js :删除一个文件index.js
  3. ls :显示该路径下的文件和文件夹

文件夹相关

  1. mkdir src :新建一个文件夹src
  2. rm -r src :删除一个文件夹src
  3. mv index.html src :把文件index.html 移到文件夹mv中。

其他类型

  1. reset,clear,history,help,exit

3. Git的基本配置
1)姓名和邮箱配置。用户标识必须操作

4. Git基本理论

4.1 Git的三个区域

Git本地有三个工作区域,加上远程的git仓库有四个区

  1. 工作目录:代码正常运行所处区域,通过git.add进入暂存区
  2. 暂存区:代码暂存的地方,通过git commit提交至资源区
  3. 本地仓库:在资源区的代码能够长久保存如果想放到线上,git push
  4. 远程git仓库:项目提交到线上数据库

4.2 工作流程:

1)在工作目录中添加和修改文件
2)将需要进行版本管理的文件放入暂存区域: git add
3) 将暂存区域的文件提交到git仓库 : git commit
4)将本地git仓库的数据提交到线上数据库: git push

4.3 git 管理的文件有三种状态

1)已经修改
2)已暂存
3)已提交

5. Git项目搭建

5.1 本地仓库搭建

git init

5.2 远程仓库在本地复制

git clone 仓库的路径

5.3 仓库与文件的连接

1)首先在gitee新建一个项目,项目的名称要和本地项目的名称一致
2)在本地进行克隆项目
3)把本地项目中的文件全部放到克隆项目中去
4)打开Git Bash,执行三段语句

git status   #查看项目中文件的状态
git add .    #一个空格带个点,把所有的文件都放入暂存区
git commit -m'修改的名称'   #把暂存区项目放入本地仓库,并且添加本次项目修改的名字
git push   # 把这个项目上传到已经链接的线上远程仓库

在后面的项目中,直接打开IDEA,会自动执行add,只需要主动实现commit 和push操作就可以。

7. 使用码云

码云gitee是一个国内的远程数据库,方便存放代码。需要设置本机绑定SSH公钥,这样后面就会自动上传文件到码云中,不需要登录

8. IDEA中集成Git

项目上传到gitee的时候,gitee中名字要保持一致
当执行上面的创建项目,只需要commit和push操作即可

  1. 提交代码流程
    0)pull:先拉去最新的代码到本地的库中。
    1)update:与远程仓库进行合并(可以选泽合并方式merger和rebase)
    2)commit:把代码上传到本地的库里
    3)push:把代码上传到远程的库里

9. GIT分支

9.1 创建分支的作用:

  • 分支的目的是将特性给绝缘开。通常在开发一个新功能或者紧急修复一个bug的时候会选择创建分支。
  • 创建的新分支会保留主分支最后一次提交信息的全部。

9.2 关于分支的操作:

  • 创建一个新分支: git branch test
  • 切换到新分支: git checkout test
  • 对新分支进行修改后提交: git add. // git commit -m’创建新分支’ // git push origin test

9.3 分支的合并merge(分支已经完成):

  • 暴力一点,直接合并起来,存在冲突再去解决。
  • 首先回到注分支上: git checkout master
  • 从远程仓库中拉去最新变更的master: git pull origin master
  • 合并本地分支test: git merge test
  • 把本地的代码再传到远程上去: git push origin master

9.3 分支的合并rebase(分支已经完成):

  • 在原来的分支后面接上新的分支的内容,但是存在历史commit覆写的问题。
  • 最终在分支上看,呈现一条直线。
  1. 首先回到注分支上: git checkout master
  2. 从远程仓库中拉去最新变更的master: git pull origin master
  3. 合并本地分支test: git rebase test
  4. 把本地的代码再传到远程上去: git push origin master

10. Git提交的常用命令:

1)没有现成远程仓库,本地仓库连接到某个远程服务器:Git remote add origin <server.>
2)改动提交到远程仓库:git push origin <master.>
3)远程仓库的重命名:git remote rename test test1 (名字从test变为test1)
4)远程仓库的移除:git remote rm test1;
5)查看提交历史:git log --author=bob
6)覆盖上一次的提交操作: git –amend
7)取消暂存的文件: git reset filename
8)撤销对文件的修改:git checkout – filename
9)丢弃本地所有改动和提交,拉取远程服务器最新历史版本: git fetch origin

重要的命令
1)git pull =git fetch 和 git merge FETCH_HEAD :从远程仓库拉去最新代码,并且合并
2)git update :从远程仓库拉去最新代码,并且合并(那个版本高,就保留那个分支),故合并完后需要在update下。
3)版本退回的几种方式:git restore

11. Git提交的常用命令:

  1. 还原00:工作区中未加到暂存区和版本库的文件,还原今天所做的修改
    尝试下Ctrl+z吧,不行就找找自动保存的缓存文件,看看能不能找到之前版本
  2. 还原01:工作区中未加到暂存区和版本库的文件,执行了 git add 操作
    直接使用 git restore --staged file_name 命令,如果版本不支持则使用 git rm --cached file_name
  3. 还原02:版本库中的文件,修改或删除后未执行 git add 操作
    直接使用 git restore file_name 命令,如果版本不支持则使用 git checkout – file_name
  4. 还原03:版本库中的文件,修改或删除后执行了 git add 操作
    直接使用 git restore --staged file_name 命令,按 <还原02> 情况处理
  5. 还原04:版本库中的文件,修改或删除后执行了 git add、git commit 操作
    直接使用 git reset HEAD^ 命令,按 <还原02> 情况处理,或者使用 git reset --soft HEAD^ 命令,按 <还原03> 情况处理
  6. 还原05:版本库中的文件,修改或删除后执行了 git add、git commit、git push 操作
    先按照 <还原04> 情况处理,然后使用 git push -f 命令
  7. 还原06:两次git commit 之后产生两条日志,只还原第一次提交
    使用 git revert HEAD^ 命令,解决冲突后提交,revert 后面跟具体的 commit id 也可以。

文章内容主要参考:1. 视频同步笔记:狂神聊Git
部分图片来源:

  1. https://zhuanlan.zhihu.com/p/532204376
  2. Git如何优雅的合并分支
  3. git checkout/git reset/git revert/git restore常用回退操作
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值