【git】git使用教程

news/2025/2/20 3:38:15/

1、版本管理工具

如果有一个软件能记录我们对文档的所有修改,所有版本,这类软件我们一般叫做版本控制工具。
特性“

  • 能够记录历史版本,回退历史版本
  • 团队开发,方便代码合并

2、版本管理工具介绍

svn、git

  1. svn是集中式版本控制工具,git是分布版本控制工具
  2. svn不支持离线提交,git支持离线提交diamanté

3、git工作流程

git初始化

  • 新建测试文件夹
  • 进入文件夹,然后右键创建版本库

git流程图
在这里插入图片描述

  • 本地仓库:是开发人员自己电脑上的git仓库,存放我们的代码
  • 远程仓库:是在远程服务器上的git仓库,存放代码
  • 工作区:自己写代码的地方
  • 暂存区:在本地仓库中的一个特殊的文件index叫做暂存区,临时存储我们即将要提交的文件
  • clone:克隆,就是将远程仓库复制到本地仓库
  • push:推送,就是将本地仓库代码上传到远程仓库
  • pull:拉取,就是将远程仓库代码下载到本地仓库,并将代码克隆到本地工作区

4、命令行——git基本操作

环境配置

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息

#设置用户信息 git config --global user.name “itcast”git config --global user.email “itcast@itcast.cn”
#查看配置信息git config --listgit config user.name
#通过上面的命令设置的信息会保存在~/.gitconfig文件中

初始化本地仓库 init

# 初始化仓库带工作区
git init
# 初始化仓库不带工作区
git init --bare  

克隆 clone

# 从远程仓库克隆
git clone 远程Git仓库地址 
例如: git clone https://gitee.com/itcast/gittest.git

查看状态 status

# 查看状态
git status 
#查看状态 使输出信息更加简洁
git status –s 

add

# 将未跟踪的文件加入暂存区
git add  <文件名>  
# 将暂存区的文件取消暂存 (取消 add )
git reset  <文件名>  

commit

# git commit 将暂存区的文件修改提交到本地仓库
git commit -m "日志信息"  <文件名>  

删除 rm

从本地工作区 删除文件

git rm <文件名>  

如果本工作区库误删, 想要回退

git checkout head <文件名>  

5、命令行——git远程仓库操作

查看远程

# 查看远程  列出指定的每一个远程服务器的简写
git remote 
# 查看远程 , 列出 简称和地址
git remote  -v  
# 查看远程仓库详细地址
git remote show  <仓库简称>

添加/移除远测仓库

# 添加远程仓库
git remote add <shortname> <url>
# 移除远程仓库和本地仓库的关系(只是从本地移除远程仓库的关联关系,并不会真正影响到远程仓库)
git remote rm <shortname> 

从远程仓库获取代码

# 从远程仓库克隆
git clone <url> 
# 从远程仓库拉取 (拉取到.git 目录,不会合并到工作区,工作区发生变化)
git fetch  <shortname>  <分支名称>
# 手动合并  把某个版本的某个分支合并到当前工作区
git merge <shortname>/<分支名称>
# 从远程仓库拉取 (拉取到.git 目录,合并到工作区,工作区不发生变化) = fetch+merge
git pull  <shortname>  <分支名称>
git pull  <shortname>  <分支名称>  --allow-unrelated-histories  #  强制拉取合并

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数–allow-unrelated-histories (如上 命令)

# 将本地仓库推送至远程仓库的某个分支
git push [remote-name] [branch-name]

6、 命令行——分支

# 默认 分支名称为 master
# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a
# 创建分支
git branch <分支名>
# 切换分支 
git checkout <分支名>
# 删除分支(如果分支已经修改过,则不允许删除)
git branch -d  <分支名>
# 强制删除分支
git branch -D  <分支名>
# 提交分支至远程仓库
git push <仓库简称> <分支名称>	
# 合并分支 将其他分支合并至当前工作区
git merge <分支名称>
# 删除远程仓库分支
git push origin –d branchName

7、 命令行——tag

# 列出所有tag
git tag
# 查看tag详细信息 
git show [tagName]
# 新建一个tag
git tag [tagName]
# 提交指定tag
$ git push [仓库简称] [tagName]
# 新建一个分支,指向某个tag
$ git checkout -b [branch] [tag]
# 删除本地tag
$ git tag -d [tag]
# 删除远程tag (注意 空格)
$ git push origin :refs/tags/[tag]

http://www.ppmy.cn/news/1182326.html

相关文章

基于图像识别的自动驾驶汽车障碍物检测与避障算法研究

基于图像识别的自动驾驶汽车障碍物检测与避障算法研究是一个涉及计算机视觉、机器学习、人工智能和自动控制等多个领域的复杂问题。以下是对这个问题的研究内容和方向的一些概述。 障碍物检测 障碍物检测是自动驾驶汽车避障算法的核心部分&#xff0c;它需要从车辆的感知数据…

【Python机器学习】零基础掌握IsotonicRegression等渗回归

想要预测一个事件的结果,但因素多且复杂,难以得出精确的预测?在金融、医疗、教育等多个领域,这样的问题是非常普遍的。 假设在医疗领域,医生需要根据多项指标(如年龄、血压、胆固醇水平等)来预测患者是否有心脏病的风险。因为每个指标对结果的影响都可能不同,单一模型…

多线程---锁策略与CAS

文章目录 常见的锁策略乐观锁 VS 悲观锁读写锁 VS 普通互斥锁重量级锁 VS 轻量级锁自旋锁 VS 挂起等待锁公平锁 VS 非公平锁可重入锁 VS 不可重入锁 CAS什么是CAS&#xff1f;CAS的使用CAS的ABA问题 死锁 常见的锁策略 乐观锁 VS 悲观锁 乐观锁和悲观锁描述的是两种不同的加锁…

华为数通方向HCIP-DataCom H12-831题库(多选题:101-120)

第101题 LSR对收到的标签进行保留,且保留方式有多种,那么以下关于LDP标签保留一自由方式的说法 A、保留邻居发送来的所有标签 B、需要更多的内存和标签空间 C、只保留来自下一跳邻居的标签,丢弃所有非下一跳铃邻居发来的标签 D、节省内存和标签空间 E、当IP路由收敛、下一跳…

Web3 治理实践探讨:如何寻找多元化发展路径?

Web3 领域变革正崭露头角&#xff0c;而社区治理开始成为行业热议话题。Web3 项目如何探寻多元化建设的解困路径&#xff0c;究竟是治理模型的精进成为首要问题&#xff0c;还是吸纳更多资金与组织教育培训&#xff0c;让开发者成为项目建设的中坚力量&#xff1f;本期 TinTinW…

rest参数

Rest参数是ES6中新增的一个语法特性&#xff0c;也称为剩余参数。其语法形式为三个点&#xff08;...&#xff09;加上一个名称&#xff0c;用于表示函数的参数个数不确定&#xff0c;可以将多余的参数收集到一个数组中。Rest参数只能作为最后一个参数出现&#xff0c;且一个函…

Facebook广告效果数据获取

一、背景 公司每年在Facebook和Google上投放了大量的广告&#xff0c;我总不能让老板登录Facebook广告投放平台上去看广告效果&#xff0c;其实老板只关注每天花了多少钱引来了多少客户&#xff0c;每个客户平均花费多少钱&#xff0c;其它的他才不关心&#xff0c;有Facebook…

关于报错java.util.ConcurrentModificationException: null的源码分析和解决

一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…