初入职,如何用好 git 快速上手项目开发

前言

介绍在工作中使用 git 工具

一、git 简介

1、是什么

  • git 是一个方便管理代码版本的工具,用一个树结构来维护和管理所有的历史版本;
  • 可持久化(可存储),可支持多人合作;

作用

  • git 用来管理仓库(文件夹)中所有的文件,其中文件中写的是代码;

操作

  • 从起点开始,起点为初始版本,每个节点为一个版本;
  • 每个节点都可以同时扩展多个分支,可以实现不同分支之间相互合并的操作;
  • 可以实现回滚操作,即恢复到某一个历史版本;

3、用途

  • 单人开发项目
    • 回滚历史版本;
  • 多人合作开发项目
    • 云平台
      • 存储历史版本,相互间同步代码;
      • 个人每次修改的时候,从云端将最新的项目代码拉到本地,本地每次开一个新的分支来写,写完后再合并一起;

二、基本概念

1、工作区

  • 当前的工作目录(当前所在的文件夹);
  • 注意
    • 工作区与分支要区分开,工作区只有一个,无论在哪个分支都只有一个工作区;
    • 错误理解:每个分支上的每个节点都有一个独立的工作区;

2、暂存区

  • 工作区与版本库之间的桥梁;

3、版本库

  • 将所有的历史版本通过树结构的形式进行存储;
  • Head 指针,Head 指针每次只会处于一个历史版本节点;

4、操作过程

  • 目的:实现将当前工作区的内容存储到版本库中;
  • 做法
    • 1)将当前工作区的内容添加到暂存区(每次认为自己写的代码有价值的时候,将其存放到暂存区);
    • 2)在版本库中当前 Head 节点后面创建一个新的节点,将暂存区中的内容放到新节点中,同时 Head 指针会往后移动一位;
  • 注意
    • 每次将工作区的内容放到暂存区中时,不会创建新的节点;
    • 将暂存区中的内容存到版本库中时会新创建一个新的节点,并将 Head 后移一位;
    • Head 指针可以进行分支的切换;

三、基本命令操作

1、本地操作

  1. 登录服务器后,先设置自己的名字和邮箱;

    • 配置完成后,名字和邮箱信息是记录在 .config 文件中;
  2. 创建项目

    1. 本地创建文件夹并进入(此时当前文件夹还是普通文件夹);
    2. 将当前所在目录的文件夹配置为一个仓库
      • 仓库的概念:仓库的这个概念本质就是一个文件夹;
      • 执行 git init
      • 此时所有信息存放到 .git 文件夹中
  3. git add xxx:将当前 xxx文件的修改存到暂存区;

  4. git status:查看工作区相对于暂存区的修改状态;

  5. git commit -m “修改的描述”:将暂存区内容提交到当前本地版本分支的当前节点

    • 目的:将暂存区内容持久化;
    • 执行 commit 时包含的操作经历的过程
      1. 在当前 Head 所指节点的创建下一个新节点;
      2. 并将当前暂存区中的内容存储到新节点中;
      3. 同时 Head 指针指向到新节点的位置,并删除当前暂存区中的内容;
  6. git diff xxx :比对当前工作区 xxx 文件中的内容与暂存区中 xxx 文件中内容的区别;

  7. git checkout / git restore XX:将XX文件尚未加入暂存区的修改全部撤销

  8. git restore

    • git restore --staged xxx:将 xxx 文件从暂存区中删除
    • git restore xxx:对 xxx 文件的进行了修改,还没有加到暂存区,想删除 xxx 文件中的修改内容,恢复到暂存区中存储的版本(如果暂存区中没有内容,就恢复到 Head 指向的节点的版本)
  9. git add . :当修改的文件很多的时候,将所有被修改过的文件全部加到暂存区;只有文件状态发生改变的文件才会被添加,如果文件没有修改,那么它就不会添加到暂存区中

  10. 当前分支:从最初节点状态到当前 Head 指针指向节点的路径(只会看当前路径上的所有节点,方向是从下往上);在当前分支进行节点回滚;回滚历史版本的含义是将当前工作目录下所有的被管理的文件(文件内容)全部恢复到回滚到节点的状态

  11. 回滚操作

    1. git log
      1. 只能打印从最初状态j节点到当前 Head 所指向节点上路径的版本
      2. 信息会显示在多行
    2. git log --pretty=oneline:将信息显示在一行
      1. 打印的是 HEAD 指针走过的所有节点的历史记录(可以找到每个节点版本的编号,每个节点版本都有一个编号)
      2. git reset --hard HEAD^
      3. git reset --hard HEAD~100
      4. git reset --hard 版本号

  • 上面的操作是将所有的内容存到了本地,存放在本地的 .git 文件夹中;
  • 为了防止本地丢失,可以将所有的历史版本(本地仓库)存到云端;

2、云端操作

1)下载和推送
  • git clone:将云端的仓库(仓库就是文件夹)下载的本地
  • git push:当前在哪个分支就会将哪个分支推到云端
    • git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库
    • git push origin branch_name:将本地的某个分支推送到远程仓库
2)分支操作
  • git check out -b xxx :创建 xxx 分支,可以在当前分支任意一个节点出发创建一个新的分支,初始创建分支的内容和当前分支的内容相同
  • git branch:可以查看当前有哪些分支,当前所在分支(*)
  • git check xxx:切换到 xxx 分支,Head 节点随之移动到切换后分支节点处
  • git merge xxx:将分支 xxx 合并到当前分支的当前节点上
  • 冲突处理
  • git pull:将云端分支拿下来并 merge(即将云端分支合并到当前分支)
    • 如果在当前分支的话,直接执行 git pull 会将云端分支内容合并到当前分支所在节点
    • 如果不在当前分支,想将云端某个分支的内容合并到当前分支,git pull origin dev5(云端分支名),这时云端分支内容就合并到了当前分支节点
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个写代码的修车工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值