git的作用以及使用

本文详细介绍了git的作用,包括其作为分布式版本控制系统的功能。文章讲解了git的下载安装、启动、配置,以及git的工作原理,强调了本地和远程仓库的概念。此外,还阐述了git项目搭建的步骤,包括本地新建仓库和远程克隆。重点讨论了git的文件操作,如4种文件状态(untracked、unmodified、modified、staged)及其转换,并介绍了.gitignore文件的使用。最后,提到了ssh公钥的配置以简化远程仓库的交互,以及git的分支管理和常用命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

git作用

文章参考:视频同步笔记:狂神聊Git
git是一种分布式版本控制系统
版本控制(Revision control)是在开发过程用于管理文件、目录、工程等内容的修改历史、方便查看历史记录、备份、以及恢复2以前版本的软件工程技术。
分布式版本控制,每个人都拥有全部的代码,所有版本信息仓库都同步到本地用户,可在本地查看所有历史版本,可离线在本地提交,只需在必要时push到服务器上。

git的使用

下载安装git

git淘宝镜像下载地址
安装时一直点击 next ,环境变量自动配置好

启动git

安装git后,在任意文件夹点击鼠标右键,都会出现git bash heregit gui here选项;或在开始菜单中也可找到git bash(Linux风格命令行)、git CMD(windows风格命令行)、git GUI(图形化界面) ,推荐使用git bash

配置git

git的系统配置保存在 Git\etc\gitconfig 文件中
git的用户配置在目录 C:\Users\自己的用户名 下的 .gitconfig 文件中,可以直接清空保存 .gitconfig 文件来清除用户配置
查看git配置:

$ git config -l

在这里插入图片描述


$ git config --system --list #系统对git的配置

在这里插入图片描述


$ git config --global --list #用户个人配置,现在暂时还未配置

在这里插入图片描述


配置git:

#配置git用户名
$ git config --global user.name "自己的名字"
#配置邮箱
$ git config --global user.email "自己的邮箱"

配置好后再查看git的用户配置
在这里插入图片描述

git在使用中的基本理论

git分为4个工作区域,本地3个,远程1个

  1. 工作目录(working directory):平时存放项目代码的地方
  2. 暂存区(stage/index):存放临时改动的文件,保存即将提交到文件列表的信息
  3. 资源库\本地仓库(repository或git directory):安全存放数据的位置,有提交到版本的所有数据,HEAD指向最新放入仓库的版本
  4. 远程git仓库(remote directory):托管代码的服务器
git add files
git restore
git commit
git reset
git push
git pull
Working Directory
Stage(index)
History (本地git仓库)
Remote Directory

本地的三个区域确切的来说就是git仓库中HEAD指向的版本,在项目文件夹中有一个**.git文件夹(一般是隐藏的),.git文件夹中有一个HEAD**文件,HEAD文件记录了指针指向的节点在这里插入图片描述

git项目搭建

  1. 本地新建git仓库
  2. 远程克隆git仓库

本地新建git仓库

$ git init

远程克隆git仓库

$ git clone [具体的url]

具体地址如图:
在这里插入图片描述

git文件操作

git的4种文件状态

  1. untracked:未跟踪,此文件在文件夹中,但未加入到git库,,不参与版本控制,通过$ git add命令状态变为staged
  2. unmodify:文件已入库,未修改,版本库中的文件快照与文件夹中的文件一致,如果被修改状态变为modified,如果使用$ git rm命令移除版本库,状态变为untracked
  3. modified:文件已修改,但还未进行其它的操作,如果使用$ git add命令进入暂存区,状态变为staged,如果使用$ git checkout命令则丢弃修改,状态返回到unmodified
  4. staged:暂存状态,如果使用$ git commit -m 'xxx'命令则将修改同步到本地版本库中,版本库中的文件快照与文件夹中的文件一致,文件状态变为unmodify;如果使用$ git reset HEAD [filename]取消暂存,文件状态变为modified

举例:
在test项目中初始化git,并新添加一个index.html文件,使用$ git status命令查看项目中的文件状态,可见文件状态为untracked
在这里插入图片描述
使用$ git add .命令将文件添加到暂存区,文件状态变为staged(“.”表示所有文件)
在这里插入图片描述
使用$ git commit -m "提交信息"将暂存区的文件提交到本地的git仓库中
在这里插入图片描述

git忽略文件

有些文件不需要放入版本库中,可在主目录下建立**.gitignore**文件标注这类文件
.gitignoe文件中的规则:

  • 文件中的空行和#开头的行会被忽略,#为注释
  • 可以使用Linux通配符,如:*代表任意多个字符,? 代表一个字符,方括号 [abc]代表可选字符范围,大括号 {string1,string2,string3…}代表可选字符串,等等。。。
  • !感叹号开头的,表示例外规则,不被忽略
  • 名称前是路径分隔符/,表示要忽略的文件在此目录下,但子目录中的文件不被忽略
  • 如果名称的最后面是路径分隔符/,表示要忽略的是此目录下该名称的子目录(文件和目录都忽略)
# 注释
*.txt #忽略所有txt文件
!lib.txt #lib.txt除外,不忽略
/temp #忽略根目录下的temp目录下的所有文件,其他目录下的temp文件夹不受影响
build/ #忽略build目录下的所有文件,包括子目录中的所有文件
doc/*.txt #忽略doc目录下的所有.txt文件,但不包括子目录下的txt文件

绑定ssh公钥

配置ssh公钥后,每次从本地仓库push代码到远程仓库便不用使用密码登录了
以gitee为例配置ssh公钥

  1. 生成公钥,使用命令$ ssh-keygen -t rsassh-keygen -t rsa -C "XXXXX@XXX.com"(rsa是一种加密算法),接着按三次回车即可,生成后可在C:\Users[自己的用户名].ssh找到对应的两个文件(id_rsa,id_rsa.pub)在这里插入图片描述
  2. 将公钥添加到gitee设置中,进入个人设置页面,左侧找到“ssh公钥”目录
    在这里插入图片描述
  3. 将id_rsa.pub文件中的内容全部粘贴到gitee上的指定位置,点击确定输入自己的登录密码即可
    在这里插入图片描述

git分支管理

git分支管理的基本操作可参考:git分支管理|菜鸟教程git分支介绍
具体工作中的git分支管理可参考:git分支管理

git常用命令

以上已说明的不再重述
git rm命令,用于删除文件,可自己手动代替

$ git rm -f <文件名> #删除工作区和暂存区中的指定文件
$ git rm --cached <文件名> #将文件从暂存区域移除,但工作区保留
$ git rm –r <文件夹名或*> #递归删除,即如果后面跟的是一个目录做为参数,则会递归删除整个目录中的所有子目录和文件

git checkout命令

$ git checkout . #放弃还未进入暂存区的所有文件的修改
$ git checkout <文件名> #放弃还未进入暂存区的指定文件的修改
$ git checkout --merge <分支名> #切换分支并且将当前分支的修改合并到要切换的分支中
$ git checkout <分支名> #切换分支
$ git checkout -b <分支名> #新建并切换分支

git branch命令

$ git branch #查看本地仓库的所有分支
$ git branch -r #查看远程仓库的所有分支
$ git branch <分支名> #新建分支
$ git branch --set-upstream-to=origin/<远程分支> <本地分支> #将远程分支关联到指定的本地分支,建议本地和远程分支名一致,关联分支后使用git push和git pull命令时就不需要再写“origin <本地分支名>:<远程分支名>”
$ git branch -m <新的分支名> #重命名当前分支名,如果新的分支名和已有的分支名相同的话则无法重命名
$ git branch -M <新的分支名> #重命名当前分支名,即使新的分支名和已有的分支名相同也可重命名,并且会覆盖相同名字的那条分支
$ git branch -d <分支名> #删除指定分支

git restore命令

$ git restore --staged <文件名> #把文件从暂存区撤销到工作区(前提是该文件未被修改)
$ git restore <文件名> #撤销文件的修改,撤销到最近一次执行git add的内容

git reset命令,详情参考:git reset

$ git reset HEAD #重置暂存区的文件使其与上次提交的版本一致,版本库中的文件内容不变,被重置的文件回到工作区,HEAD表示当前版本,HEAD^表示上一个版本,HEAD^^表示上上个版本
$ git reset HEAD^ #将本地版本库中的所有内容回退到上一个版本,文件回到工作区,状态变为modified,提交信息也会被删除
$ git reset HEAD^ <文件名> #将本地版本库中的指定文件回退到上一个版本
$ git reset <版本号> #回退到指定版本,版本号可以使用git log命令查看,如下图所示
$ git reset --soft HEAD^ #回退到上一个版本,文件进入暂存区,提交信息不会被删除,与上几条命令作用原理类似
$ git reset --hard HEAD^ #参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交,与上几条命令作用原理类似

查看版本号
git tag命令
如果你达到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签,比如每次版本更新时给master分支打标签,使用$ git log命令可以看到

$ git tag #查看所有标签
$ git tag -a <标签名> #-a 选项意为"创建一个带注解的标签",当你执行 git tag -a 命令时,Git 会打开你的编辑器,让你写一句标签注解,就像你给提交写注解一样
$ git tag -a <标签名> -m "提交信息" #作用同上,但不会打开编辑器
$ git tag -d <标签名> #删除指定标签
$ git tag -a <标签名> <版本号> #追加标签
$ git show <标签名> #查看此版本修改的内容
$ git checkout -b <分支名> <标签名> #从指定标签处切出一个新的分支,在此标签后提交的内容不会出现在该分支上,被标记的代码是固定

其它命令

$ git help #查看git命令和命令的说明
$ git help <command> #查看该命令的具体说明
$ git log #用来展示一个项目的可达历史记录,从最近的提交快照起
$ git reflog #用来展示一个项目的可达历史记录,包括回滚信息
$ git blame <文件名> #追溯指定文件的历史修改记录
$ git push origin <本地分支名>:<远程分支名> #将代码提交到远程仓库的指定分支中,origin为远程主机名,是clone时git自动命名的,可以修改但没有必要
$ git pull origin <远程分支名>:<本地分支名> #将远程仓库指定分支拉取到本地指定分支,pull是fetch和merge的结合
$ git merge <分支名> #将指定分支内容合并到所在分支上
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值