开发者社区> 计算机魔术师> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Git -- 入门这一篇就够了 (入门必备,超硬核)

简介: Git -- 入门这一篇就够了 (入门必备,超硬核)
+关注继续查看


图片.png

  • 关于 安装&配置 基础命令 中文乱码 别名 回退与反回退 gitignore配置 Git托管服务 那些事(本文章带*号的标题都是重点)

【Git 第一步 -- 启航】

一、Git基本概念

git是什么,有什么用处呢?

使用场景

  1. 备份
  2. 代码还原
  3. 协同开发
  4. 追溯他人编写代码时间和编写人(找人背锅😜)
    (代替云盘和U盘的存在)

常用管理工具有

SVN 和 CVS 集中式控制版本工具等

Git 为开源分布式版本控制工具(重)

(学了svm学gif的同学建议完全忘掉svm学习,不然会乱)

二、git工作流程

图片.png

最重要的概念是远程仓库和本地仓库,远程仓库可以是github,gitee,giitlab…

三、Git安装

下载地址: https://git-scm.com/download(傻瓜式安装,全都默认就行)

图片.png

安装后

如果右键有Git GUI Here Git Bash Here两个选项就说明安装的没太大问题

🎏Git GUI : Git提供的图像界面工具

🎏Git Bash : 提供的命令工具,相当于linux的一个小窗口

图片.png

以下例子都是在: Git Bash演示,所以需要一点基本的linux命令,提前列举一下:

  • Is [- all] 查看当前目录文件
  • cat [文件名字] 查看文件内容
  • touch [文件名字] 创建文件
  • vi [文件名字] vi编辑器为了方便展示效果,也可以用记事本

四、基本配置

打开git bash

图片.png

  • 重要一步:设置用户名和邮箱地址,因为git要跟踪是谁提交的,即使是个人开发也要跟踪,所以一定要配置,不然后面操作会报错

设置邮箱和用户名

git config --global user.name "majic"
git config --global user.email ""

查看用户名和邮箱

git config --global user.name
git config --global user.email

4.1 解决中文乱码问题

由于是在window系统,或多或少还是会有一些不兼容的问题,解决办法:

  • 右键打开git.bash
git config --global core.quotepath false

在${git_home}/etc/bash.bashrc (就是安装Git的根文件下的etc文件)文件最后加入下面两行代码

export LANG="zh_CN.UTF-8" 
export LC_ALL="zh_CN.UTF-8"

五、创建本地仓库

建立一个空文件,这里命名为test,右键打开git.bash

  • 执行命令
git init

即可成功初始化仓库,如下图

图片.png

如果看不见这个文件,设置显示隐藏文件就行

六、常用命令

6.1 状态

  • 如图提交代码流程中文件的状态(工作区指的是除了该目录下除了.git仓库之外的文件):图片.png
  1. 对于新建的文件, 则为未跟踪状态(untracked),此时git没有对该文件进行管理,
  2. 对于已跟踪未修改的文件,此时还没有提交到仓库,则为未暂存状态(unstaged)

在学习GIt的时候,会有一个疑问:为什么不进行将修改的代码或添加的文件从工作区直接提交到仓库呢?

  • 暂存区的用处:
    可以选择提交文件
  1. 情景一:
    假设你是开发人员,修改了许多文件,对全部文件进行提交,那有没有想过里面每个文件都是实现不同的模块呢,这一次提交即为一次版本,但是里面修改了许多文件,此时当你回滚历史时,你会无所适从不知道哪个版本包含哪些功能实现,
  2. 情景二:
    假设要开发模块B,但是模块A出现了Bug,那就要先修改提交模块A的bug版本,再进行模块B的开发,这样可以提高历史的清晰性,

还有一个疑问,为什么不修改一个文件,提交一次仓库呢,那有没有想过,如果是这样,会大大增加工作量,修改一个文件需要提交一次,使用暂存区则在开发好后,选择需要提交的文件进行提交.

修改文件,文件下的不同状态

git add 工作区 => 暂存区

git commit 暂存区 => 本地仓库

此外Git中的命令是分大小写的

6.2 *创建文件命令

在bash中输入指令(创建文件)

touch file01.txt 

图片.png

6.3 *查看状态命令

git status

图片.png

可以看到当前状态为为跟踪(对应图中的文件创建)

6.4*添加到暂存区命令

git add .

其中. 是通配符,全部文件添加,也可以指定文件名

图片.png

查看修改状态

git status

图片.png

6.5*添加到仓库命令

他的操作是将缓存区的文件送往仓库,所以不需要指定文件

git commit -m "add file01"

图片.png

6,6 *查看日志命令

git log

图片.png

log 后面其实还有四个可选项

  • –all 显示全部分支
  • –pretty=online 将所有显示为一行
  • –abbrev-commit 使得输出的commitId更简短( 从十几位数字变为七八位)
  • –graph 以图的形式显示

七、别名配置

在项目开发中,如果想实现一个指令,但是代码很长,那怎么让他用较短命令实现呢,我们可以使用别名。

  • 打开用户目录创建.bashrc文件
  • 放入代码(在各种语言都有类似的alias设置别名):
  • 代码: alias 自定义命令 = '命令'

例子:

 #用于输出git提交日志 
 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' 
 #用于输出当前目录所有文件及基本信息 -al 即-all 查看所有
 alias ll='ls -al'
 alias git new_branch = 'git branch -b'

图片.png

效果: 原本需要一大串代码现在只需要几个字符,是不是比原先的简洁多了

图片.png

7.1 vi编辑器

生成一个文件,并开始编辑(如果编辑不了按Insert

如:

vi file01.txt

图片.png

  • 编辑结束按Esc 输入:wq即可退出编辑。
    用上述的方法,将创建文件放置缓存区,再到仓库,查看log

图片.png

图片.png

八、 *版本回退

只需要一行代码即可(commitID 是你的提交记录,版本是按照时间从上到下)

git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

菜鸟教程

例子:

git reset --hard commitID

首先通过clear清空页面

图片.png

分别查看日志,然后版本回退上面的操作,再看日志,

图片.png

图片.png

之前所编辑的文本消失不见,回退成功

九、*撤销版本回退

在上述我们进行版本回退之后想要撤销如何操作呢

只需要找到原来版本的commitID同样的命令行即可,见图:

图片.png

问题:如果之前的commitID 当前命令行没有怎么办呢(比如:clear页面)

一行代码即可(查看参考日志reference log)

git reflog

图片.png

便可知道上次记录的commitID(这是因为 git的所有操作都是 被记录在案的 即使 你是用 --hard 全部文件删除也可以返回)

十、*gitignore(取消git跟踪管理)

我们通过命令touch .gitignore创建文件.gitignore,使用vi命令编辑

图片.png

退出(vi编辑,不知道如何退出的,上面讲解有说,不要忘了哦)

十一、Git托管服务

即远程仓库

图片.png

常见的托管服务

(全球最大交友平台) Github 开源 (只支持git管理,网速慢)

国内的 码云 Gitee (优点,速度快)

Gitlab(企业常用,私人)

11.1 注册码云账号

注册并激活码云账号( 注册页面地址:https://gitee.com/signup

创建仓库

图片.png

图片.png

生成成功

图片.png

11.2 配置SSH公钥

在上传的时候都需要验证你的身份,可以时手机号码验证等,不过一般常用的使用公钥SSH

流程:

  • 生成公钥
ssh-keygen -t rsa

不断回车(不需要配置信息)

如果需要再自己配置

图片.png

  • 获取公钥
cat ~/.ssh/id_rsa.pub

其实就是查看在.ssh目录下的id_rsa.pub文件

图片.png

  • 复制公钥
    图片.png
  • 打开Gitee设置

图片.png

图片.png

点击确定,并输入密码

11.3 连接配置(重要)

  • 这里是码云 所以是 gitee.com 如果是github 改为github.com即可
ssh -T git@gitee.com

图片.png

图片.png

成功配置托管服务!!

✨感谢您的阅读,您的点赞与收藏是我写作的最大动力!✨
• 1



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Git看这一篇就够了(三)
Git看这一篇就够了(三)
52 0
Git看这一篇就够了(二)
Git看这一篇就够了(二)
35 0
Hibernate入门这一篇就够了(一)
Hibernate入门这一篇就够了
62 0
一篇入门 -- Git
一. Git 介绍 Git作为一款分布式的==版本控制==工具,作为一名程序员,是必须要掌握的. 最初由林纳斯·托瓦兹(Linus Torvalds)创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计.
1101 0
Hibernate入门这一篇就够了
前言 本博文主要讲解介绍Hibernate框架,ORM的概念和Hibernate入门,相信你们看了就会使用Hibernate了! 什么是Hibernate框架? Hibernate是一种ORM框架,全称为 Object_Relative DateBase-Mapping,在Java对象与关系数据库之...
1110 0
AJAX入门这一篇就够了
什么是Ajax Ajax(Asynchronous JavaScript and XML) 异步JavaScript和XML Ajax实际上是下面这几种技术的融合: (1)XHTML和CSS的基于标准的表示技术 (2)DOM进行动态显示和交互 (3)XML和XSLT进行数据交换和处理 (4)XML...
1210 0
ASP编程中的"Microsoft JScript 编译错误 错误 '800a03ec'缺少;"的解决方法.
解决方法: 试: “组件服务”,在组件服务中找到Excel进行配置; 给everyone,network控制权限,Microsoft Excel Application DCOM 属性中标识->选择“交互式用户”->确定。
696 0
+关注
计算机魔术师
当才华满足不了野心的时候,请努力!
62
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载