学习git(大全)

认识 git

+ 是一个基于操作系统运行的工具(软件/环境)
+ 作用: 管理你本地的文件夹
=> 上传到远程
=> 历史跳转
+ 如果你想上传到 github, 那么只能使用 git 这个软件
github
+ 是一个网站
=> 私人: 想象成一个网页版的百度云盘
+ 用来保存你的项目源代码
=> 可以选择公开或者不公开
=> 协同开发(单人异地协同开发, 多人协同开发)
+ 特殊的作用
=> 个人能力的体现
gitee(码云)
+ 是一个网站
+ 和 github 作用一样, 接受 git 上传的代码
=> 中国人的网站
+ 和 github 的区别, 就是上传的时候, 填写的地址不一样

git的安装

git 安装
+ 下载安装包
=> 官网下载: https://git-scm.com/
+ 双击安装包运行
=> 一路下一步, 直到最后
+ 检测安装
=> 方案1: 来到桌面, 或者任意空白位置
-> 单击鼠标右键
-> 出现 git bash here 和 git gui here 表示安装成功
=> 方案2: 打开命令行, 目录无所谓
-> 输入指令: $ git --version
-> 出现版本号, 表示安装成功
+ 提供
=> 提供了一个新的命令行工具
=> 可以在这个 命令行 工具内使用指令来管理你的文件夹
=> 点击 git bash here, 就是一个命令行工具
=> 注意:
-> 当你使用指令来管理你的文件夹的时候
-> 可以使用电脑自带的终端
-> 可以使用 git bash
git 首次安装需要进行的配置
1. 查看我的 git 配置列表
=> 打开命令行(终端, git bash), 目录无所谓
=> 输入指令: $ git config --list
=> 会在命令行出现你当前的 git 配置内容
2. 配置全局用户名
=> 打开命令行, 目录无所谓
=> 输入指令: $ git config --global user.name "你的用户名"
3. 配置全局邮箱
=> 打开命令行, 目录无所谓
=> 输入指令: $ git config --global user.email "你的邮箱"
=> 注意: 邮箱使用真实邮箱

git管理本地文件夹

git 管理本地文件夹
1. 把文件夹交给 git 管理
+ 告诉 git 这个软件, 我这个文件夹你帮我管理一下
+ 打开命令行, 切换目录到你需要 git 帮你管理的文件夹
+ 输入指令: $ git init
+ 指令执行完毕
=> 在该文件夹下回多出一个文件夹, 叫做 .git/
=> 是一个隐藏文件夹
=> 只要有 .git/ 文件夹, 就表示当前目录被 git 这个软件管理了(git 仓库)
=> 该目录及所有子目录, 都会接受 git 的管理
+ 注意:
=> 当你需要使用 git 的指令的时候
=> 必须要要保证这个文件夹是被 git 管理的
2. 查看当前文件状态
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git status
+ 查看当前目录下所有文件的管理状态
3. 将工作区的内容插入到暂存区
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令:
=> $ git add 文件名
-> 把单一一个文件放在暂存区
=> $ git add 文件夹名称/
-> 把单一一个文件夹放在暂存区
=> $ git add --all
-> 把目前工作区所有内容都加入到暂存区
-> 简写: $ git add .
4. 将暂存区的内容拉回工作区
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令:
=> $ git reset HEAD -- 文件名
-> 拉回单一文件回到工作区
=> $ git reset HEAD -- 文件夹名称
-> 拉回单一文件夹回到工作区
=> $ git reset HEAD -- .
-> 拉回暂存区所有内容回到工作区
5. 形成历史版本
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git commit -m "说明"
+ 会把当前暂存区内所有的内容形成一个历史版本
=> 并且清空暂存区
6. 查看历史版本
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git log
+ 会以倒序的形式给你展示你的历史版本
// 当前版本的版本 id
commit db72376a130c5ca737866ec7aeb47ea956d9aafa
// 签名(全局用户名和邮箱)
Author: guxiang1991 <wdbbdpd223322@gmail.com>
// 时间
Date: Fri Jun 18 10:19:12 2021 +0800
// 你写的提交说明
第二版
+ 记录一下几个版本
=> 第一版: 3c8b6ffb5204f46441e4c2e5b792eb25248e6782
=> 第二版: db72376a130c5ca737866ec7aeb47ea956d9aafa
=> 第三版: 3b21e742ddc6ef93b39ce6ce98524be2d6b90c8f
7. 本地历史跳转
+ 作用: 回到过去的历史版本
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git reset --hard 版本id
+ 你的文件夹会回到你指定版本时的状态
git 仓库是什么样子的 ?
+ 当一个文件夹被 git 管理以后
+ 会变成一个 git 仓库
+ 就会 "虚拟" 的把这个文件夹变成三个区域
=> 工作区
=> 暂存区
=> 历史区
工作区:
+ 你所有书写在仓库中的代码(文件)
+ 都是放在工作区内, 表示你的源代码
暂存区:
+ 可以把工作区的内容在暂存区创建节点
+ 保存一份工作区的内容
+ 目的是为了形成历史版本
+ 你想形成历史版本, 只能把暂存区的内容形成历史版本(不能直接把工作区形成历史版本)
历史区:
+ 可以把暂存区的内容形成一个历史版本
+ 当你向前跳转的时候, 只能跳转历史区内存在的历史版本
+ 可以上传到远程
+ 你想上传到远程, 只能把历史区内的历史版本上传, 不能直接上传 暂存区和工作区

上传到远程

1. 第一次上传(该本地仓库的第一次上传)
1-1. 建立一个远程仓库
=> 在 github 或者 gitee 上建立一个文件夹
=> 打开网站
-> 右上角有个加号
-> 如果是 gitee 点击 新建仓库
-> 如果是 github 点击 new repository
-> 填写仓库名称(就相当于一个远程文件夹名称, 不要用中文)
-> 仓库介绍无所谓
-> 点击创建
1-2. 给本地仓库设置远程地址
=> 设置一个将来上传要上传到什么位置的地址
-> 你远程仓库的地址
-> 如果你要上传 github 就填写 github 地址
-> 如果你要上传 gitee 就填写 gitee 地址
=> 打开命令行, 切换目录到 .git/ 文件夹所在的目录
-> 输入指令: $ git remote add 变量 地址
-> remote 指远程地址
-> add 指添加
-> 变量 你自己定义一个变量名
-> 地址 你要上传的地址
1-3. 上传到远程
=> 打开命令行, 切换目录到 .git/ 文件夹所在的目录
=> 输入指令: $ git push -u 变量 master
-> -u 的含义:
-> 比如你有两个远程添加了
-> 一个是 origin 记录了地址 a
-> 一个是 origin2 记录了地址 b
-> 第一次上传的时候书写了 -u origin, 那么第二次的时候, 不用书写 origin 自动上传到 origin
-> 第一次上传的时候没有写 -u origin, 那么第二次如果还想上传到 origin, 那么还得写一次 origin
2. 第二次上传(指的是同一个本次仓库的第二次上传)
2-1. 保证有未上传过的历史版本
2-2. 直接 git push

下载到本地

1. 第一次下载远程仓库
1-1. 打开网站(github 或者 gitee)
=> 找到你需要下载的那一个远程仓库
=> 点击 克隆/下载 按钮
=> 赋值 https 地址
1-2. 在本地找到一个你需要存在该文件夹的位置
=> 打开 命令行
=> 输入指令: $ git clone 地址
=> 就会把该远程仓库下载到本地
2. 第二次下载远程仓库
2-1. 打开命令行, 切换目录到第一次下载的文件夹下
=> 输入指令: $ git pull
3. 上传问题
=> 如果你 clone 的是你自己的仓库
=> 那么可以直接在这里上传
=> 如果你 clone 的是别人的仓库, 那么不能上传

git的分支

git 的分支
+ 在把当前的内容复制一份一模一样的内容
+ 在复制出来的内容上进行开发
+ 开发完毕以后再次进行合并
1. 创建分支
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git branch 分支名称
+ 作用创建一个新的分支
=> 注意: 新分支上的内容就是当前分支的所有内容
2. 查看当前分支
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git branch
3. 切换分支
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git checkout 分支名
4. 合并分支
+ 打开命令行, 切换目录到 .git/ 文件夹所在的目录
+ 输入指令: $ git merge 分支名称
+ 注意: 只能是你站在某一个分支上, 把其他分支合并到自己身上
5. 分支的命名规范
5-1. master 分支
=> 创建 git 仓库的时候, 默认生成的
=> 不接受任何代码上传
=> 只接受主开发分支合并来的代码
5-2. dev 分支(development)
=> 主开发分支, 从 master 分支分出来的
=> 不接受任何代码上传
=> 只接受主功能分支合并来的代码
5-3. feature-xxx
=> 主功能分支, 从 dev 分支上分出来的
=> 进行主要功能开发
=> 接受代码上传
5-4. feature-xxx-xxx
=> 个人开辟的分支, 从 feature-xxx 分支上开发
=> 用来细分自己的功能
=> 还可以用来作为记录留存, 当项目测试中出现的 bug 需要你修改
5-5. hot-xxx
=> 特殊分支: 直接从 master 分出来
=> 遇到紧急 bug 需要处理, 再回开
=> 修改完毕 bug 以后, 可以不经过测试直接合并回到 master

git的冲突

+ git 上传的过程中, 异地上传的过程中
+ 有可能会出现冲突问题
+ 为什么会出现冲突
=> 本地和远程的版本不一致
+ 解决冲突
=> git pull 一下
=> 在本地把冲突代码解决掉

=> 再次 add commit push

和git相关的几个文件

1. readme.md
=> 当你的远程仓库内有一个叫做 readme.md 的文件
=> 会自动把文件解析成 html 格式显示在首页
2. .gitkeep 文件
=> 是一个只有后缀没有名字的文件
=> 为了保持目录结构
=> 因为 git 不会管理空文件夹
-> 当我们初始化项目的时候
-> 其实就是为了保持一个目录结构
-> 就需要在文件夹内部放一个没有意义的文件
-> 最好放一个 .gitkeep 文件
3. .gitignore 文件
=> 是一个只有后缀没有名字的文件
=> 在这个文件里面写上需要 git 忽略的内容
=> 你书写完毕以后, git 就不在管理这个文件内书写的内容了
可视化工具
=> githubdesktop

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值