Git _ 入门版

4 篇文章 0 订阅

目录

1、认识 Git

2、Git 软件的安装

3、Git 管理操作本地文件

4、上传到远程

5、拉取到本地

6、Git 的分支

1. 创建一个新的分支

2. 查看所有分支

3. 切换分支

4. 合并分支

5. git  删除本地分支

6. git  删除远程分支

7. git  查看远程地址

8. git  设置远程地址

7、分支命名规范和使用基本规则

8、Git 冲突

9、和 git 相关的几个特殊文件

10、GIT 图例


推荐一篇自己使用 Git 遇到的问题及操作习惯 :

Git _ 报错信息

Git 常用命令速查表 :


1、认识 Git

Git

  + 是一个安装在电脑上的 "软件"

    => 不是依赖 node 环境运行的了

    => 是一个依赖电脑操作系统运行的工具(软件/环境)

    => 作用 : 管理本地的文件夹

    => 历史跳转

    => 作用: 可以把本地的内容上传到远程

  + 如果你想上传到 Github , 那么只能使用 Git 这个软件

GitHub

  + 是一个 "网站" , 是一个国外的 "网站"

  => 私人: 想象成一个网页版的百度云盘

  + 用来 保存项目 源代码

    => 可以选择公开或者不公开

    => 协同开发(单人异地协同开发, 多人协同开发)

  + 也是一个 服务器, 可以接受你上传的内容

  + 只能接受由 Git 这个 "软件" 上传内容

  + 也是一个 "社交平台", "开源社区"

    => 代码可以被 "点星"

  + 特殊的作用

    => 个人能力的体现

Gitee ( 码云 )

  + 是一个 "网站", 是一个国内的 "网站"

  + 和 Github 的作用是一致的

  + 接受 Git 这个 "软件" 上传的代码

    => 中国人的网站

  + 和 Github 的区别, 就是上传的时候, 填写的地址不一样

 GitLab ( 一般为 公司级 应用 ) 

( 记住 : 人家问你上一家公司使用的是啥 , 千万不能说是 Gitee 啊 )

我们一开始使用的是 GitLab , 后来改用 Git-Gerrit


2、Git 软件的安装

  + 不能使用 node 安装

  + 需要单独下载安装包, 手动安装

  + 下载安装包 :

    => 官网下载 :  Git

  + 安装: 双击安装包运行, 一路下一步, 直到最后

  + 检测安装 :

    => 方案1: 来到桌面, 或者任意空白位置

      -> 单击鼠标右键

      -> 出现 Git Bash Here 和 Git GUI Here 表示安装成功

    => 方案2: 打开命令行, 目录无所谓

      -> 输入指令: $  git --version 

      -> 出现版本号, 表示安装成功

Git 首次安装需要进行的配置

  + 需要配置一个 用户名 和 邮箱

  1. 查看我的 Git 配置列表信息:

    => 打开命令行(终端, git bash), 目录无所谓

    => 输入指令: $  git config --list 

    => 会在命令行出现你当前的 git 配置内容

  2. 配置全局用户名:

    => 打开命令行, 目录无所谓

    => 输入指令: $  git config --global user.name "你的用户名" 

  3. 配置全局邮箱:

    => 打开命令行, 目录无所谓

    => 输入指令: $  git config --global user.email "你的邮箱" 

    => 注意: 邮箱最好使用真实邮箱

Git 安装以后 得到什么内容 ?

  + 提供了一个新的 Git Bash 的命令行工具

  + 和我们自己电脑的 cmd 或者 终端 是一样的

  + 可以通过这个 命令行工具 操作 git 的指令 来管理你的文件夹

  => 点击 Git Bash Here, 就是一个命令行工具

  => 注意:

    ~> 当你使用指令来管理你的文件夹的时候

    ~> 你可以选择使用 电脑自带的终端 cmd

    ~> 也可以选择使用 Git Bash Here


3、Git 管理操作本地文件

+ Git 默认不会管理你的任何一个文件夹

+ 你的某一个文件夹如果需要 Git 管理

+ 那么你需要通知给 Git , 他才会管理

1. 把本地文件夹 初始化 成为 Git 仓库, 交给 Git 管理

  + 告诉 Git 这个软件, 我这个文件夹你帮我管理一下

  + 打开命令行, 切换目录到你需要 Git 帮你管理的文件夹目录

  + 输入指令: $  git init 

  + 指令执行完毕 :

  + 会在当前目录下, 生成一个叫做  .git  的 隐藏文件夹

    => 只要有 .git 这个文件夹, 表示当前目录被 Git 这个软件管理了

    => 当前目录及所有后代目录都是被 Git 管理的状态

  + 注意:

    => 当你需要使用 git 的指令的时候

    => 必须要要保证这个文件夹是被 Git 管理的

1-1. 当你把一个 本地文件夹 变成 本地仓库 以后

    => Git 会 "虚拟" 的把你的文件夹分成 三个部分

    => 工作区

      -> 你书写的代码全部都在工作区内

    => 暂存区

      -> 把你想形成历史版本的内容暂时存储

      -> 暂存区可以回退到 工作区

    => 历史区

      -> 你形成的一个一个的历史版本

      -> 只能把暂存区的内容形成历史版本

2. 查看当前文件 ( 暂存区 ) 状态

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令: $  git status 

  + 查看当前目录下所有文件的管理状态

3. 把工作区的内容添加到暂存区

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令:

    => $  git add 文件名称 

    单独添加一个文件到暂存区

    => $  git add 文件夹名称 

    单独添加一个文件夹到暂存区(注意: 空文件夹 git 不管理)

    => $  git add --all    

    把工作区当前所有的内容都添加到暂存区

      -> 简写: $ git add -A

      -> 简写: $  git add . 

4. 把暂存区的内容回退到工作区 ( 拉回 )

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令:

    => $  git reset HEAD -- 文件名称 

    单独撤回一个文件到工作区

    => $  git reset HEAD -- 文件夹名称 

    单独撤回一个文件夹到工作区

    => $  git reset HEAD -- .      

    撤回暂存区所有内容到工作区

5. 生成历史版本

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令: $  git commit -m "说明" 

  + 就会把当前暂存区内的所有内容形成一个 历史版本

  => 并且 清空暂存区

6. 查看历史版本

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令: $  git log 

  + 会以 倒序 的形式来展示你的历史版本

  // 当前版本的版本 id =>  commit

  // 签名(全局用户名和邮箱) => Author:

  // 时间  =>  Date:

  // 你写的提交说明

7. 回退历史版本 (跳转)

  + 作用: 把当前工作区回到指定的那个时间节点的版本

  + 打开命令行, 切换目录到 .git 文件夹所在的目录

  + 输入指令: $  git reset --hard 版本id 

  + 就会把你工作区的文件夹回退到指定的历史版本时间节点状态

解释一下历史版本信息
// 当前版本的版本编号( id )
commit bee820aeea62f5c07b6acf0dae237f487b2c61db
// 作者( 全局用户名和邮箱 )
Author: 你的用户名  你的 email 邮箱
// 时间
Date:   Thu Aug 5 11:45:23 2021 +0800
// 你写的版本提交说明
    第一个版本
记录一下几个版本的编号
  + 第一版: bee820aeea62f5c07b6acf0dae237f487b2c61db
  + 第二版: 0bf4af29071100f44c8f4a15396b873d53bd838d
  + 第三版: db092ed5be9a563de47ab368ec352e3ed0c0bbe7


git 仓库是什么样子的 ?
+ 当一个文件夹被 git 管理以后
+ 会变成一个 git 仓库
+ 就会 "虚拟" 的把这个文件夹变成三个区域
  => 工作区
  => 暂存区
  => 历史区 ( 本地仓库 )
工作区:
+ 你所有书写在仓库中的代码(文件)
+ 都是放在工作区内, 表示你的源代码
暂存区:
+ 可以把工作区的内容在暂存区创建节点
+ 保存一份工作区的内容
+ 目的是 为了形成历史版本
+ 你想形成历史版本, 只能把暂存区的内容形成历史版本 (不能直接把工作区形成历史版本)
历史区:
+ 可以把暂存区的内容形成一个历史版本
+ 当你向前跳转的时候, 只能跳转历史区内存在的历史版本
+ 可以上传到远程
+ 你想上传到远程, 只能把历史区内的历史版本上传, 不能直接上传 暂存区和工作区


4、上传到远程

1. 你的历史区要有还没有上传过的版本

2. 你要有一个 远程的仓库

  => 尽量不要一个远程仓库对应多个本地仓库

  => 会出现 冲突

1. 第一次上传 (该本地仓库的第一次上传)
1-1. 建立一个远程仓库
  GitHub 网站地址
  Gitee 网站地址
  => 在 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 


5、拉取到本地

 1. 第一次拉取该远程仓库的内容

  1-1. 打开网站( GitHub 或者 Gitee )

    => 找到你需要拉取的那一个远程仓库

    => 点击 克隆 / 下载 按钮

    => 复制 HTTPS 仓库地址

  1-2. 在本地确定你需要存放远程仓库的目录位置

    => 在当前目录下打开 命令行

    => 输入指令: $  git clone 远程仓库地址 

    => 就会把该远程仓库拉取到本地

2. 第 n 次拉取该远程仓库的内容

  2-1. 直接拉取远程代码就行

    => 打开命令行, 切换目录到你之前拉取下来的文件夹内(第一次下载的文件夹下)

    => 输入指令: $  git pull 

3. 上传问题

  => 如果你 clone 的是你自己的仓库

  => 那么可以直接在这里上传

  => 如果你 clone 的是别人的仓库, 那么不能上传


6、Git 的分支

+ 在当前内容下, 把当前的内容复制一份一模一样的内容

开辟出一个 分支内容, 在分支上的所有书写

+ 和原本内容不相干, 是在复制出来的内容上进行开发

+ 当你需要的时候, 进行分支合并就可以了

一般是开发完毕以后再次进行合并

1. 创建一个新的分支

=> 打开命令行, 切换目录到 .git 文件夹所在的目录

=> 输入指令: $  git branch 分支名称 

+ 作用 : 创建一个新的分支

=> 会把你当前所在的分支的所有内容复制一份放在新创建的分支上

=> 注意: 新分支上的内容就是当前分支的所有内容

2. 查看所有分支

  => 打开命令行, 切换目录到 .git 文件夹所在的目录

  => 输入指令: $  git branch 

这个是简写 , 查看本地所有的分支命令 ,

git  branch  -a  这个是既可以看到本地的所有分支 , 还可以看到远程上的分支 ,

假如没有看到远程上别人的分支 , 可以先

git  pull  跟远程仓库进行一下同步操作 , 然后再

git  branch  -a  查看分支

3. 切换分支

=> 打开命令行, 切换目录到 .git 文件夹所在的目录

=> 输入指令: $  git checkout 分支名称 

=> 切换到指定的分支位置

4. 合并分支

=> 在 git 内的合并分支, 只有一种情况

  -> 你站在某一个分支上, 想把其他分支的内容合并到自己身上

=> 打开命令行, 切换目录到 .git 文件夹所在的目录

=> 输入指令: $  git merge 分支名称 

或者呢 ? =>

我 切到 你的分支 上 git pull 拉了一下 , 然后切回 我的分支 , 合并 你的分支 , 然后就可以了

再 或者 呢 ? =>( $   git  pull  origin  master )一定不要忘了加  origin


5. git  删除本地分支

( 1 ) 切换到 git 代码目录 。

( 2 ) 使用指令 $ =>  git branch -d  你的本地分支名   来删除本地分支


6. git  删除远程分支

使用指令 $ =>  git push origin --delete [branchname]  你的远程分支名   

或者  $  =>  git push origin -d 分支名  ,  来删除远程分支

切换到你 git 项目所在的目录后,使用 git branch -a 命令来查看所有的分支。

列出所有分支了,其中上方的是 本地的分支,

下方的有 remotes/origin 开头的就是 远程分支。

假设要删除 new-a 的远程分支 ,我们需要先把分支切换到 master ,

因为你现在所在的分支就是 new_a ,在这个分支下 ,是不能删除它的 。

使用命令 git checkout master


7. git  查看远程地址

  git remote -v 

如果绑定好远程地址的话:

会有两条地址 fetch 和 push ,那么 fetch 表示我们要获取到的地址,

push 则表示我们要推送的地址。


8. git  设置远程地址

8-1、添加远程地址

git remote add origin http://git.XXXX.com/XXX/XXX.git/

8-2、修改远程地址

git remote set-url origin http://git.XXXX.com/XXX/XXX.git/

7、分支命名规范和使用基本规则

1. master 分支

  + 创建 git 仓库时的 主分支 , 默认生成的

  + 不接受任何代码上传

  + 只接受 主开发分支 (由 dev 分支) 合并来的代码内容

2. dev 分支

  + 也叫作 development

  + 主开发分支 , 从 master 分支分出来的

  => 不接受任何代码上传

  + 只接受 主功能分支 合并来的代码内容

  + 负责把测试没有问题的版本合并到 master 上

3. feature-xxx(功能)

  + 主功能开发分支 , 从 dev 分支上分出来的

  => 进行主要功能开发

  + 接受该功能的代码上传

  + 负责把该功能开发完毕以后合并给 dev 分支

例如 : feature/zhangsan

4. feature-xxx(功能)-xxx(bug)

  + 你自己在分配给你的分支上开辟的(个人开辟的分支)

  => 从 feature-xxx 分支上开发

  + 根据需求开辟出来(用来细分自己的功能)

  => 还可以用来作为记录留存, 当项目测试中出现的 bug 需要你修改

5. hot-xxx(bug)

  + 极其特殊的分支: master 分出来

  + 直接在 master 上开辟

  + 专门用来解决 紧急 bug 的分支

  => 修改完毕 bug 以后, 可以不经过测试直接合并回到 master 分支上


8、Git 冲突

+ 在 git 上传代码的过程中, 异地上传的过程中

+ 有可能会出现冲突的情况

+ 为什么会出现冲突

  => 本地和远程的版本不一致

多个本地仓库对应一个远程仓库

解决冲突 : 

+ 把远程的代码拉取下来 =>  git pull 一下

+ 在本地根据代码进行选择, 保留哪一个冲突位置的代码

=> 在本地把冲突代码解决掉

+ 再次 add 、commit 、push 就可以了

  => 你的所有版本, 解决冲突之前和解决冲突之后的版本都会被保留下来


9、和 git 相关的几个特殊文件

1.  readme.md

  + 只要在项目目录内有一个叫做 readme.md 的文件

  + 当你上传到远程仓库的时候,

  就会自动把文件解析成类似 html 页面的格式显示在仓库首页上

2.   .gitkeep 文件 

  + 是一个只有后缀名, 没有文件名的文件

  + 为了作为文件夹保持目录结构

  + 因为 git 不会管理空文件夹

  -> 当我们初始化项目的时候

  -> 其实就是为了保持一个目录结构

  -> 就需要在文件夹内部放一个没有意义的文件

  -> 这时最好在空文件夹内放一个 .gitkeep 文件

3.  .gitignore 文件 

  + 是一个只有后缀名, 没有文件名的文件

  + 作为忽略文件使用

  + 把你要忽略的文件和文件夹写在这个 .gitignore 文件内

  + 你书写完毕后 , git 就不在管理这个文件或者文件夹了

  + 是在 .git 文件夹同级建立一个叫做 .gitignore 的文件

可视化工具

=> githubdesktop


工作中遇到的分支问题 :

自己的本地开发分支 ( develop 分支 ) 对应的远程分支 ( develop 分支 )

已被 “ 管理员 ” 删除了 ,且创建了新的远程分支 ( WEB_HOTFIX ) ,

但是我本地还在 已被删除 的 ( develop ) 开发分支上 ,

本地还没有删除 , 而且还写了新的代码 ,并未提交 ,

那我怎样才能把本地分支的代码 同步 到 “ 管理员 ” 新创建的( WEB_HOTFIX )分支上呢?

一 、 首先是在你本地分支写的代码为提交的状态下

 1、git fetch  ( 获取最新创建的远程分支 ) 

 2、git stash  ( 把本地未提交的代码 暂存 起来 ) 

3、git checkout ' 新分支 '  ( 切换到新创建的分支上 )

 4、git stash pop  ( 把 暂存 的代码 再 释放 出来 ) 

5、git branch -a  ( 查看所有分支 、 包括本地分支和远程分支 )

( 可以 git branch -d ' 分支名 '   删掉本地无用的分支 )

解决 Git 每次提交输入密码的问题

1、git config --global credential.helper store
2、git pull  /  git push  ( 第一次输入 , 后续就不用再次输入了 )

pull / push 你的代码 , 这时会让你输入 用户名 和 密码 , 这一步输入的
用户名 密码 会被记住 , 下次再 pull / push 代码时就不用再次输入了 。
这一步其实是在用户目录下面生成文件  .git-credential 
用来记录用户名和密码信息的文件。
打开项目目录下面的 .git 目录里的 config 文件

url=http://{username}:{password}@192.168.200.19/ProtoType/insurtech_od_api.git

换上自己的 用户名 和 密码 即可

解决 合并 merge 分支代码 时 Git 工具页面混乱的问题

1、 i
2、 Esc
3、 Shift  +  : 冒号
3-1、  冒号 : wq
4、 Enter 回车

i  =>  Esc  =>  :wq  =>  Enter


10、GIT 图例

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值