Git简介及其基础
本文最后更新于67 天前,其中的信息可能已经过时,如有错误请发送邮件到2401292661@qq.com

Git概述

  1. Git是什么?

    Git是一种版本控制控制系统,Git并不是Github,git是一种软件,用于版本控制的,而Github是一个商业网站,其本体是一个Git服务器。

  2. 为什么要用Git?

    说到为什么要用Git,就要谈到备份,我们做的工作分为很多版本,这时就需要将老版本进行备份,但自己备份有很多缺点,占用的空间大,无法清除记录每个文件是谁、什么时候加入、修改、删除的,无法清除记录每个文件的差异。而Git就可以很好的处理这些问题,他保存的是文件内存的”快照“,可以非常快地切换版本,而且保留历史记录和证据,可以很快知道问题的发生时间、谁造成的。

  3. Git的优点是什么?

    Git是免费的、开源的;Git切换版本速度快;Git是分布式系统,每台计算机都有一个Git版本控制系统,虽然需要共同的服务器进行合作,但在没有网络的环境下依旧可以用Git进行版本控制,当网络恢复时再进行同步。

  4. Git只有程序员需要吗?

    Git只关心文件的内容,因此只要是文件,都可以使用Git来管理。但对于一些二进制文件(如图片,PSD文件)无法像常规文本那样可以一行一行地查看,也就无法精确地知道什么人在什么时候改了哪些字。但Git还可以做出其他工作,如回溯版本等。

Git安装

官方网站:Git - 安装 Git (git-scm.com)

从官方网站下载对应操作系统的合适Git版本即可。

终端常用命令

Windows macOS/Linux 说明
cd cd 切换目录(很重要)
cd pwd 获取当前所在的位置
dir ls 列出当前的文件列表
mkdir mkdir 创建新的目录
touch 创建文件
copy cp 复制文件
move mv 移动文件(修改文件名)
del rm 删除文件
cls clear 清除画面上的内容

Vim操作介绍

Vim是Git的默认编辑器。所以应该介绍一点关于Vim的很简单的内容,要不然连怎么编辑和退出都不知道。当然可以修改默认编辑器,跳转到

常用模式

在Vim中,只要是通过模式的切换来进行输入、移动光标、选取、复制及粘贴等操作。常用模式有两种,即Normal模式和Insert模式,从名字上看就知道Insert模式就是编辑模式,而Normal模式就是切换到其他模式的一个中间模式。

  1. 从Normal模式到Insert模式:

    1. 按i:表示insert,即插入
    2. 按a:表示append,即追加
    3. 按o:表示new line,即新加一行
  2. 从Insert模式到Normal模式:

    • 按Esc键或者Ctrl+[ 组合键
  3. 退出、保存:

    首先在Normal模式下按shift和: 组合键

    1. 退出输入q:关闭文件,若未保存则会提示先存储在离开
    2. 保存并退出输入wq:存储完成后关闭文件
    3. 强制退出输入!q:在修改了文件但不想保存文件的情况

Vim的命令非常多,但以上的命令也已经足够了

Git的设置

用户设置

这是必须做的,要不然怎么知道是谁修改的文件

打开终端,输入以下命令设置用户名和邮箱

git config --system user.name "your name"
git config --system user.email "your email"

这里的config就是配置的意思。system就是系统用户的意思,为此系统的用户设置用户名及邮箱。处理system,还有两种参数适用于不同情况。

参数 说明
global 给整个计算机一次性设置(不建议)
system 给当前用户一次性设置
local 给当前项目一次性设置

在都设置的情况下,local的优先级最高,其次是system。即越精细优先级越高

其他设置

更换编辑器

一般来说vim是Git的默认编辑器,但其门槛有点高。所以可以更换编辑器,我用vscode进行演示。

首先你得确定安装了vscode,在git终端输入code可以跳出vscode编辑器

然后直接输入这条命令即可

git config --system core.editor "code --wait"

当然,根据你的需要可以修改system参数

输入以下命令以验证是否设置成功(跳转出vscode就是成功了,结束需要关闭文件)

git config --system -e

当需要用vscode进行编辑文件时,可以用命令code后面跟文件路径。当然,可以输入目录名/打开目录下的所有文件

设置缩写

有些命令很长,如checkout等,容易打错。所以可以设置缩写以便于更好的输入。以下是设置git checkout的缩写为git co的命令

git config --system alias.co checkout

alias的意思就是”别名“。可以看出来是设置配置文件,所以我们可以直接在配置文件中进行修改。使用如下命令打开配置文件.gitconfig(也可以找到这个文件,有用户级和项目级的,别配置错了)

git config --system -e

在[alias]下设置即可(若没有直接新增即可)。如下是网上示例。

[alias]
    st = status
    co = checkout
    br = branch
    mg = merge
    ci = commit 
    md = commit --amend
    dt = difftool
    mt = mergetool
    last = log -1 HEAD
    cf = config
    line = log --oneline
    latest = for-each-ref --sort=-committerdate --format='%(committerdate:short) %(refname:short) [%(committername)]'

    ls = log --pretty=format:\"%C(yellow)%h %C(blue)%ad %C(red)%d %C(reset)%s %C(green)[%cn]\" --decorate --date=short
    hist = log --pretty=format:\"%C(yellow)%h %C(red)%d %C(reset)%s %C(green)[%an] %C(blue)%ad\" --topo-order --graph --date=short
    type = cat-file -t
    dump = cat-file -p

Git基础使用

新增、初始化仓库

  1. 进入你想对其Git管理的目录下。(可以是空目录,也可以是已经存在的目录)

    image-20240713161422364

  2. Windows下点击右键,点击Git Bash here。其他系统类似,只要在本目录下打开终端即可

    image-20240713161550204

  3. 终端输入git init命令初始化仓库。然后在本目录下就有.git这个目录了,这个目录下的文件很重要。

  4. 取消Git控制:把.git目录删除即可。Linux使用命令rm -rf ./.git。所以若你将这个目录删了那就寄了。

Git的三区

Git在逻辑上分为三个区域,即工作区、暂存区、存储区。顾名思义,工作区就是你用于编辑的区域,也就是当前目录下除.git外的所有文件,都处于工作区。当你编辑完成后,这时你想要进行保存这时的版本,你就要先提交到暂存区,然后再提交到存储区(完整过程)。暂存区的意义就是将你需要暂时提交的文件到这个区域,当完成所有工作时,一次性将暂存区的内容全部提交到存储区。(什么时候提交到存储区还是看你自己,想什么时候提交都可以,存储区的内容是有详细记录的,用于历史记录)

image-20240713163329400

Git管控

当完成Git的初始化后,接下来就需要将当前工作区的文件交给git进行管控了。

  1. 将文件交给git:使用git add命令将需要进行管控的文件交给git

    git add welcome.html
    

    以上命令就是将welcome.html文件交给git进行管控,这时此文件就已经保存到了暂存区。

  2. 将暂存区的内容提交到存储库中存档:使用git commit命令。

    git commit -m "将暂存区的内容提交"
    

    -m参数是说明这次commit做了什么事,若没有这个参数,则会要求你进行输入说明。这个说明很重要!!!以下是关于信息的几点建议

    1. 尽量不要使用太过情绪化的字眼
    2. 英文、中文都可以,重点是要简单、清除
    3. 尽量不要使用类似bug fixed这样模糊的描述,因为不知道修改了什么bug。要精确,如#34 bug fixed就描述修改了34号bug
  3. 不说明直接提交:加上--allow-empty参数。这时就可以不输入说明进行提交

  4. 以上就是Git进行管控的完整过程。git add -> git commit

git add相关命令

  1. 使用万用字元:git add *.html,此命令将所有html后缀的文件全部加到暂存区。

  2. 使用--all或者.:git add --all或者git add .,此命令将全部文件都加到暂存区。但它们还是有差别的。

  3. --all和.的差别:以下表格是不同版本对文件的是否添加的区别。除此之外,git add .只会添加当前目录下(可能进入了根目录下的目录中)的所有文件,包括子目录下子子目录等下的文件,但git add --all会添加工作区中的所有文件(及.git目录同目录下的所有文件)

    Git.1x 版本      
    使用参数 新增文件 改动文件 删除文件
    -all 会添加 会添加 会添加
    . 会添加 会添加 不会添加
    Git.2x 版本及以后      
    使用参数 新增文件 改动文件 删除文件
    -all 会添加 会添加 会添加
    . 会添加 会添加 会添加

     

 

 

 

文末附加内容
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇