Git新手?这篇文章带你飞!基础操作一网打尽!

推荐阅读

智能化校园:深入探讨云端管理系统设计与实现(一)
智能化校园:深入探讨云端管理系统设计与实现(二)


文章目录

  • 推荐阅读
  • Git
    • 初识Git
      • 啥是版本控制系统??
      • 集中式VS分布式
    • git使用
      • Git安装
      • Git的使用命令
    • idea链接gitee


Git

初识Git

Git(读音为/gɪt/) 是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。
git是世界上最先进的分布式版本控制系统(没有之一)。

啥是版本控制系统??

例如:
一个项目,我们开发了第一版、第二版、第三版、一定不改版、一定一定不改版、最终版、终极不再改动再改就砸电脑版,最终敲定的方案是第一版。这种情况下,改到最后已经看不出当初的模样了。所以,我们需要将每一次的修改记录并保存下来,以便于为后面的版本溯源。
而这时,有一个软件可以帮你自动记录每个文件的改动,还可以让同事一起参与协作编辑,这样自己就不用将每一次改动前的版本手动保存,也不再需要将改动后的文件传来传去,每一次需要就去软件中看就行了。
而git就可以很好的解决以上问题。

版本控制系统是软件开发必备的代码管理工具,主要用于解决以下四个方面的问题:

  1. 代码备份
  2. 版本控制
  3. 协同开发
  4. 责任追溯

集中式VS分布式

集中式版本控制系统(代表:SVN),版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。
在这里插入图片描述
分布式版本控制系统(代表:Git)
分布式版本控制系统没有“中央服务器”每个人的电脑上都是一个完整的版本库,这样,我们工作的时候,就不需要联网了,因为版本库就在自己的电脑上。那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
在这里插入图片描述

集中式和分布式的区别是:

你的本地是否有完整的版本库历史!

假设SVN服务器没了,那你丢掉了所有历史信息,因为你的本地只有当前版本以及部分历史信息。
假设GitHub服务器没了,你不会丢掉任何git历史信息,因为你的本地有完整的版本库信息。你可以把本地的git库重新上传到另外的git服务商。

分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

git使用

Git安装

从Git官网下载,根据不同操作系统去进行相应的下载。(此处以Windows为例)

在这里插入图片描述
安装成功后,相应的文件夹下会是这样的。
在这里插入图片描述
鼠标右键也可以
在这里插入图片描述
然后点击bash.exe,就会弹出一个命令窗口的东西,即git安装成功了。

Git的使用命令

1.git 环境配置(第一次使用时是要配置的)
用户名,邮箱

$ git config --global user.name "Your Name"//这里写的是你自己的用户名和邮箱哈
$ git config --global user.email "email@example.com"

2.创建版本库
什么是版本库?版本库又名仓库,英文名repository,你可以简单的理解一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改,删除,Git都能跟踪,以便任何时刻都可以追踪历史,或者在将来某个时刻还可以将文件”还原”。
创建版本库命令

$ mkdir test(加文件名)//创建
$ cd test//使用
$ pwd//查看当前目录
$ git init//初始化,生成.git文件(若该文件隐藏,则使用ls -ah)

注意:必须在当前版本库和当前目录下

删除文件

$ rm test.txt
//直接删除
$ git checkout -- test.txt//删错了,恢复(撤销修改)

3.将文件添加到缓存区去,并将文件提交仓库中。

$ git add test.txt//添加
$ git commit -m "test.txt 文件提交"//提交
$ git status //查看是否还有文件未提交(查看文件的状态)
$ git diff test.txt//(查看文件修改了啥内容)
$ cat test.txt//查看文件内容

4.版本控制
查看历史记录

$ git log//查看提交历史记录,从最近到最远,可以看到3次
$ git log --pretty=oneline//简洁查看

版本回退

$ git reset --hard HEAD^ //回退一个版本
$ git reset --hard  //回退前两个版本,一次类推
$ git reset --hard HEAD HEAD~100 //回退到前100个版本
$ git reset --hard  版本号//回到最新的版本
$ git reflog//查看每一次修改历史,查看了版本号之后,在进行恢复

撤销修改

$ git checkout -- test.txt//丢弃工作区的修改,即撤销修改
$ git reset HEAD test.txt//丢弃暂存区的修改(若已提交,则回退)

远程仓库
1.初次创建Gitee(github)账号,需要先进行SSH公钥设置,因为本地git仓库和Gitee仓库之间的传输是通过SSH加密的。

$ ssh-keygen -t rsa -C "youremail@example.com"//填写你自己的邮箱,创建SSH Key

2.登录Gitee 点击我的设置中安全设置的SSH公钥,将你生成的黏贴到此处,并添加它。
在这里插入图片描述
3.创建一个新的仓库

$ git remote add origin 网址//关联

网址即那个路径
在这里插入图片描述

$ git push -u origin master//将本地内容推送到远程仓库(第一次提交)(第一次应该还要输入一次Gitee账号密码)
$ git push origin master//将本地内容推送到远程仓库(之后体交)
$ git remote -v        //查看远程仓库信息
$ git remote rm origin//删除远程仓库(解绑)

4.克隆一个本地仓库

$ git clone 网址//克隆远程仓库
$ ls//查看
$ git remote//查看远程库的信息
$ git remote -v//查看远程库的详细信息

在这里插入图片描述
5.协作开发
1.创建分支和合并分支

$ git checkout -b dev//创建并切换到分支dev
$ git branch dev//创建dev
$ git checkout dev//切换dev

$ git branch//查看当前分支
$ git branch -d dev//删除dev分支

$ git merge dev//(合并到master 分支上)
$ git merge -no -ff -m"注释" dev //(注释dev分支上)
-no -ff//用来禁用Fast forword模式

若在工作中突然遇到了bug ,工作还未完成,这时可以先将工作现场藏起来,恢复后在继续工作。

$ git stash//将现场储藏起来
$ git stash list//查看储存的工作现场

$ git stash apply //恢复
$ git stash drop//删除
$ git stash pop//恢复并删除

2.推送分支

$ git push origin master(dev)//推送分支
$ git checkout -b dev origin/dev//创建远程origin的dev分支到本地

A推送的和B推送的产生了冲突
$ git pull//抓取分支(解决冲突)
$ git branch --set-upstream-to=dev(master) dev//指定本地与远程dev的链接
$ git rebase//把本地未push的分叉提交历史整理成直线

其他可能会用到的命令操作

$ git config --global alias.last 'log -1'//显示最后一次提交信息
$ git last//显示最近一次的提交
$ cat .git/config //查看每个仓库的git配置文件
$ cat .gitconfig  //查看当前用户的git配置文件
$ git config --global color.ui true//让git显示颜色

更多命令自行去搜吧,需要啥查啥,点子搭积木吧。

idea链接gitee

附上idea 链接 gitee,(github操作其实也类似)
打开设置,找到插件,下载Gitee并应用即可。
在这里插入图片描述
点击gitee ,点击加号,登录即可。看到账号即链接成功。

在这里插入图片描述
回到主页面,打开终端。正常输入git命令即可。
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/315976.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

录屏怎么打开?看这里,录制视频不费事!

随着科技的快速发展,录屏已经成为人们日常生活中经常使用的功能。无论是录制游戏视频、教程讲解,还是录制在线会议,录屏软件都发挥着重要作用。然而,很多用户并不知道录屏怎么打开,以及如何使用它们。本文将介绍两种常…

【书生·浦语】大模型实战营——第四课作业

教程文档:https://github.com/InternLM/tutorial/blob/main/xtuner/self.md 基础作业需要构建数据集,微调模型,让其明白自己的弟位(OvO!) 微调环境准备 进入开发机后,先bash,再创…

uniapp微信小程序投票系统实战 (SpringBoot2+vue3.2+element plus ) -投票帖子明细实现

锋哥原创的uniapp微信小程序投票系统实战: uniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )_哔哩哔哩_bilibiliuniapp微信小程序投票系统实战课程 (SpringBoot2vue3.2element plus ) ( 火爆连载更新中... )共计21条视频…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》下篇

导读 《应急预案数字化建设现状和发展建议》:297-313页 《中国应急管理发展报告》系列蓝皮书由中央党校(国家行政学院)应急管理培训中心(中欧应急管理学院)联合社会科学文献出版社研创出版,本着“权威前沿…

RT-Thread I/O设备模型

I/O设备模型 绝大部分的嵌入式系统都包括一些I/O(Input/Output,输入/输出)设备,例如仪器上的数据显示屏、工业设备上的串口通信、数据采集设备上用于保存数据的Flash或SD卡,以及网络设备的以太网接口等,都…

Linux 内核学习 3a - 如何查看虚拟内存和物理内存,以及虚拟内存和物理内存之间转换

/proc/iomem, ioremap(), mmap() The kernel manages device resources like registers as physical addresses(物理地址). These are the addresses in /proc/iomem. The physical address is not directly useful to a driver; it must use ioremap() to map the space and …

linux安装MySQL5.7(安装、开机自启、定时备份)

一、安装步骤 我喜欢安装在/usr/local/mysql目录下 #切换目录 cd /usr/local/ #下载文件 wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz #解压文件 tar -zxvf mysql-5.7.38-linux-glibc2.12-x86_64.tar.gz -C /usr/local …

【电路电子学】7天速通攻略+笔记

7天是 看视频记笔记刷题的总时长,时间紧迫的同学可以看情况进行缩减。个人认为做题,尤其是解析齐全的题最重要! 我校所用教材 《电路与电子学基础》唐胜安 复习总流程 所用材料(都可自行找到免费资源) 视频知识点讲…

机器人持续学习基准LIBERO系列5——获取显示深度图

0.前置 机器人持续学习基准LIBERO系列1——基本介绍与安装测试机器人持续学习基准LIBERO系列2——路径与基准基本信息机器人持续学习基准LIBERO系列3——相机画面可视化及单步移动更新机器人持续学习基准LIBERO系列4——robosuite最基本demo 1.更改环境设置 LIBERO-master/l…

【降龙算法】基于QT插件机制实现一个机器视觉算法小框架

机器视觉行业有各种各样的拖拉拽框架,也叫做低代码平台,例如国内海康的VisionMaster: 一个机器视觉框架需要包含各种算法模块,日志窗口,图像显示窗口等等,【降龙算法】就是做了一个入门级的机器视觉算法框…

Java入门IDEA基础语法

1:Java入门 1.1 Java简介 Java是什么: Java是一门非常优秀的计算机语言 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java之父:詹姆斯高斯林(James Gosli…

如何利用RPA做UI自动化测试对传统自动化的降维打击

写在前面 RPA软件一开始的目的并不是自动化测试,而是要把电脑上面几十个、上百个常用的软件,通过机器人流程自动化来打通,通过一个软件来控制几十个、上百个软件。而这个过程,其实覆盖了软件自动化测试。 所谓降维打击&#xff0c…

伴鱼离线数仓建设案例

伴鱼数仓建设案例 伴鱼离线数仓建立,与伴鱼的业务一起快速发展,从一条业务线,到多条业务线。在演进的过程中,有很多总结和沉淀的内容。本篇文章主要介绍伴鱼离线数据仓库的发展历史,在发展过程中遇到的各种问题&#…

pytorch学习笔记(十)

一、损失函数 举个例子 比如说根据Loss提供的信息知道,解答题太弱了,需要多训练训练这个模块。 Loss作用:1.算实际输出和目标之间的差距 2.为我们更新输出提供一定的依据(反向传播) 看官方文档 每个输入输出相减取…

如何用ChatGPT写教案设计?以“沁园春雪”为例

1. 引言 随着人工智能技术的飞速发展,ChatGPT已成为教育领域的一大创新工具。ChatGPT不仅能够模拟人类对话,还可以帮助设计互动丰富、内容丰富的教案。本文将探索如何利用ChatGPT进行教案教学设计,特别是通过“沁园春雪”这一案例&#xff0…

智能路由器 端口映射 (UPnP) Padavan内网端口映射配置方法

新版本Padavan 4.4内核的端口映射配置和老版本的不太一样,因为新版本默认是启用的 UPnP端口映射, 同时默认使用的是 IGD UPnP自动端口映射, UPnP名词解释: UPnP通用即插即用,是一组协议的统称,是一种基于TCP/IP、UDP和HTTP的分布式、开放体系&#xff…

【C++】- 类和对象

类和对象③ 介绍运算符重载赋值运算符重载运算符重载 在学习C语言时,我们首先接触的就是变量,再深入学习,我们可以利用运算符对变量进行操作,当我们使用C编写程序时,经常会遇到一些需要对特殊的例如自定义数据类型进行…

Linux中PyTorch的安装教程

在安装PyTorch之前,我们需要确保已经安装了Python和pip。可以使用以下命令检查是否已经安装: python --version pip --version如果没有安装,可以使用以下命令安装: sudo apt-get update sudo apt-get install python3 sudo apt-…

NetApp E系列(E-Series)OEM产品介绍以及如何收集日志和保存配置信息

NetApp E系列是NetApp收购LSI存储后建立的一条新的产品线,由于LSI存储的历史悠久,所以这条产品线给NetApp带来了很多的OEM产品,可以说E系列是世界上OEM给最多公司的存储产品线也不为过,因为最早LSI的产品销售测率就是OEM&#xff…

手把手教你学会接口自动化系列九-封装调用之后的代码展示

接上篇: 手把手教你学会接口自动化系列八-将url写在配置文件中,封装调用-CSDN博客 下来把之前写的demo开始改造,将所有的url = http://192.168.0.134:8081的部分,替代了 如下: demo的改造 # !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2023/05# @Author …