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

news2024/9/28 21:30:08

推荐阅读

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


文章目录

  • 推荐阅读
  • 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命令即可。
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu 在线Swap扩容

1. 查看本机swap空间 free -h 2. 找一个较大的高速盘,创建swap的空间 mkdir /swap cd /swap sudo dd if/dev/zero ofswapfile bs50M count1k3.建swapfile,大小为bs*count 50M * 1k 50G 4.标记为Swap文件,让系统能识别交换文件。 sudo mk…

表单生成器基于(form-create-designer+ant design vue)

效果展示 1.源码地址: 前端:https://gitee.com/houshixin/form-design-ui 后端:https://gitee.com/houshixin/form-design-web 2.单独使用前端的时候就把请前后台的接口注释就可以 3.都启动的话: 1).先导入数据库 2.表…

统信UOS_麒麟KYLINOS与Windows通过Open SSH实现文件传输

原文链接:统信UOS/麒麟KYLINOS与Windows通过Open SSH实现文件传输 hello,大家好啊!今天我要给大家介绍的是在统信UOS或麒麟KYLINOS操作系统与Windows系统之间通过Open SSH实现文件传输的方法。在日常工作中,我们经常需要在不同操作…

【JUC】JAVA线程小结

Java线程 前言——阅读10-20分钟🎆1.创建和运行线程ThreadRunableFutureTask多个线程运行方式 📣2.不同操作系统查看进程线程的方法windowslinuxJava命令行 🚀3.java线程运行原理栈与栈帧线程上下文切换(Thread Context Switch&am…

word写标书的疑难杂症总结

最近在解决方案工作,与office工具经常打交道,各种问题,在此最下记录: 1.word中文档距离文档顶端有距离调整不了 1.疑难杂症问题1,多个空格都是不能解决 #解决办法:word中--布局-下拉框---“版式”--“垂直…

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

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

MagnificAI的爆火之下 - AI时代,伟大的公司只需要2个人

这两天,Magnific AI又被推上风口浪尖。 起因是他们发布了全新的功能:将任何图像放大并增强至10,000 x 10,000 像素。 传说中的4K超清,也就4096像素,但是Magnific AI可以将一张600像素糊成智障的图片,几分钟的时间&…

Springboot基层健康医院云HIS信息系统源码

基层卫生健康云HIS系统采用云端SaaS服务的方式提供,使用用户通过浏览器即能访问,无需关注系统的部署、维护、升级等问题,系统充分考虑了模板化、配置化、智能化、扩展化等设计方法,覆盖了基层医疗机构的主要工作流程,能…

近视的孩子用什么灯?学生考研护眼台灯推荐

随着时代快速发展,2022年我国近视人数达到了7亿,呈现低龄化趋势,儿童及青少年人数占了53.8%。现在学业负担都很重,每个家长都不希望自己的孩子近视或加深近视了,都会想尽一切办法保护视力。而护眼台灯就成了家长购买台…

不同activity项目创建时的区别

在 Android Studio 中创建项目时,可以选择创建不同类型的 Activity 作为应用程序的入口点。其中,包括 Empty Activity、Basic Activity、Empty Compose Activity 和 Basic Compose Activity 四种类型。 Empty Activity:这是最简单的 Activity…

agilent n9344c频谱分析仪20ghz

181/2461/8938产品概述: Agilent安捷伦N9344C手持频谱分析仪20GHz Agilent安捷伦N9344C手持频谱分析仪是当今最先进的频谱分析仪器之一,可以在20GHz的范围内对信号进行快速、准确的分析。它不仅具有出色的性能,还具有紧凑的外观和轻便的重量…

分享一个使用python FastApi创建服务的简易模版,与使用http/python请求

这个博客分享一个fastapi的模版,并提供使用http/python访问的示例程序 文章目录 示例程序FastApi应用程序HTTP请求Python请求 示例程序 FastApi应用程序 下面是一个示例: 默认开启一个可以使用Get请求访问的URL:/example_connect这个请求有…

2024年1月12日:清爽无糖rio留下唇齿之间的香甜

友利奈绪的时间管理 2024年1月12日08:02:28进行java程序设计的上课准备 2024年1月12日08:02:44知道java的题目有18道 2024年1月12日08:43:07随机数去重比较 2024年1月12日08:54:03C语言题目最小公倍数 2024年1月12日08:58:37C语言题目二维数组变一维数组 2024年1月12日10…

2024.1.11每日一题

LeetCode 2645.构造有效字符串的最少插入数 2645. 构造有效字符串的最少插入数 - 力扣(LeetCode) 题目描述 给你一个字符串 word ,你可以向其中任何位置插入 “a”、“b” 或 “c” 任意次,返回使 word 有效 需要插入的最少字…

SQL性能分析-整理

昨日对MySQL的索引整理了一份小文档,对结构/分类/语法等做了一个小总结,具体文章可点击:MySQL-索引回顾,索引知识固然很重要,但引入运用到实际工作中更重要。 参考之前的文章:SQL优化总结以及参考百度/CSDN…

【java八股文】之JVM基础篇

1、Java中都有哪些引用? 强引用 :发生GC时候不会被回收 软引用:发生内存满(内存溢出的时候)会被回收(通常用于缓存) 弱引用:发生下一次GC时候会被回收 虚引用:无法通过虚…

简单明了,汽车级LM317系列LM317D2TR4G线性电压稳压器电源设计-参数应用方案分享

低压差线性稳压器(LDO),是指一种具有恒定电流输出电压的装置,主要由输入变压器、整流器、输出变压器三部分构成,工业原理为将输入的交流电压经过整流、滤波后得到直流输出电压,再经过控制元件和开关器件将稳…

web前端算法简介之队列

队列 队列基本操作 入队(enqueue):将元素添加到队列的尾部。出队(dequeue):从队列的头部移除元素。队首(front):获取队列头部的元素,但不移除它。队尾&#x…

STM32H5培训(二)性能提升与功耗优化

文章目录 1. 前言2. 性能提升3. 功耗优化参考: 1. 前言 本篇主要介绍STM32H5系列的性能提升和功耗优化方面的具体表现。H5系列相比于F4系列在性能和功能上有较大的升级,包括更强的内核、更高的主频、更快的flash访问速度、更丰富的通信接口和先进的安全…

word2003图片不显示

如图,可以看出图片内容空白,只剩下图片边框了。这种原因是在视图选项中勾选了显示图片窗按钮,才会这样。 解决方法是,如图,选择打开工具菜单下的选项窗口,然后在选项窗口中选择视图标签,然后…