【Git】常见命令的使用

news2024/9/20 13:20:03

Git

  • 介绍
  • 流程
  • 安装
  • 常见命令
  • 本地仓与远程仓关联

介绍

Git、Svn:版本控制器(用于多人团队协作)

Svn:集中式版本控制器;版本库集中放在中央服务器,操作非常简单,鼠标右键提交、新增、下载

Git:分布式版本控制器;并非将所有版本放在中央服务器,它将每一个人的电脑都看做是一个服务器,不需要联网也可以提交;目前最先进主流的版本控制器,Git相对于SVN会复杂一些,因为它有很多命令

流程

->工作区 :自己电脑上项目所在目录
-> 暂存区 :通常放在当前目录 .git目录下
-> 本地仓库(本地版本库):同样在 .git目录下
-> 远程仓库(远程端版本库):将代码放在服务器上

Alt

安装

1)去下载"https://git-scm.com" => 选择"Downloads" => 选择"Window系统的下载" => 选择"64-bit Git for Windows Setup"
2)双击下载好的.exe文件 => 默认选项不改,直接next直到install,整个过程都不需要手动选择,直接采用默认选项

常见命令

安装好Git之后,对着项目根目录点击右键会有"Git Bash Here"的选项,选择之后可以直接进入项目命令行或终端弹窗

1)配置命令

		安装完Git之后必须先设置全局的用户名和邮箱地址
		=> git config --global user.name '你的用户名' (必须英文,执行成功没有提示,错误会有提示)
		=> git config --global user.email '你的邮箱'
		
		如果仅仅是为了当前项目单独设置用户名,那么需要去掉global执行命令
		git config user.name '你的用户名'
		
		查看当前配置
		git config --list
		
2)仓库初始化

		新项目的仓库创建(首先进入到你准备创建项目的目录下)
		=> mkdir mygit (英文,自定义文件夹的名字;执行后指定的目录下就会出现文件夹mygit)
		=> cd mygit (进入创建的项目目录中)
	
		仓库初始化
		=> git init (会在当前目录下创建一个.git的隐藏目录,不要再电脑里去显示隐藏文件,不许碰)
		/* 执行结果:
					Initialized empty Git repository in E:/前端/code/git/mygit/.git/ */
					
3)查看当前项目状态

		可以看到有没有文件的变动,新的文件,文件的改变等等
		=> git status
		/* 执行结果:
					On branch master
	
					No commits yet
	
					nothing to commit (create/copy files and use "git add" to track) */
	
		在项目mygit中新建index.html,再次执行git status
		/* 执行结果:
					On branch master
	
					No commits yet
	
					Untracked files:
					(use "git add <file>..." to include in what will be committed)
	        			  index.html
	
					nothing added to commit but untracked files present (use "git add" to track) */
					
4)文件跟踪 -> 工作区提交到暂存区

		将工作区的文件(例:index.html)提交到暂存区
		=> git add index.html
		
5)文件跟踪 -> 暂存区提交到本地仓库

		=> git commit -m '本次提交说明文字'
		/* 执行结果:
					[master (root-commit) 095d7dd] 新建了一个index.html
					 1 file changed, 10 insertions(+)
					 create mode 100644 index.html */

6)新增文件(修改文件之后重新更新 | 提交文件)

		操作:index.html新增了内容,并且创建了css文件夹和index.css文件

		如果添加的文件和文件夹比较多的情况下,我们每次执行git add 文件名(暂存区),git commit -m '本次提交说明'(本地
		仓库),可以这样一个文件一个文件的提交操作,但是会很麻烦。可以通过一个指令将所有都包含进去(根据情况选用以下两个
		指令中的一项执行)

		=> git add . (新增、修改的都添加到暂存区,但不包含删除的文件)
		=> git add -A (添加所有变化,新增、修改、删除)

		注意:并非只要执行了git add之后就必须git commit -m 'xxx',可以多次add之后再git commit到本地仓库

		执行顺序:当有文件发生变动,不能直接执行git commit,必须首先执行git add

		新增完毕之后再提交到本地仓库
		=> git commit -m '修改了index.html文件和新增了index.css文件'

7)可通过代码编辑器完成之前的操作

		补充:Sourcetree: https://www.sourcetreeapp.com   可视化工具

		WebStorm:不同版本的编辑器,有稍许差异看具体情况操作(当前使用的2021.3.3版本在左下角、左上角操作)

		VSCode:下载安装插件(Git History、GitLens — Git supercharged)后即可使用

		HBuilderX:官方插件商城下载安装(easy-git Git源代码管理工具),另外要去下载Git插件依赖的(TortoiseGit)工具

8)历史记录

		查看版本历史记录(最新提交的记录前会有 HEAD -> master 的标记)
		=> git log

		查看历史操作记录
		=> git reflog

9)文件删除

		手动将工作区的index.css文件删除
		=> git status(提示有文件被删除了,但这里的删除并没有在本地仓库中删除index.css文件)
		/* 执行结果:
					On branch master
					Changes to be committed:
					  (use "git restore --staged <file>..." to unstage)
						    deleted:    css/index.css */

		怎样删除本地仓库中的文件?因为这个操作也算是在修改文件,所以同样提交暂存 ->修改本地仓库
		=> git add .
		=> git commit -m '删除css文件'
		/* 执行结果:
					[master 2a7f5cd] 删除css文件
					 1 file changed, 3 deletions(-)
					 delete mode 100644 css/index.css */


		或也可不用以上两步操作,直接使用指令git rm 文件名(删除工作区文件,并且也从暂存区删除对应记录)
		=> git rm index.html
		=> git commit -m '删除index.html文件'

10)停止跟踪

		操作:新建了test.html文件
		以下两步操作完成后,文件就会一直处于被跟踪状态,一旦文件发生变化就会被发现
		=> git add . (提交到暂存区)
		=> git commit -m '新增test.html文件' (提交到本地仓库)


		指定某个文件停止跟踪(文件变更的内容将停留在停止跟踪之前)
		=> git rm --cached test.html

		如果停止跟踪之后,又希望再次跟踪(文件内容为最新的文件内容)
		=> git add .
		=> git commit -m '提交test.html文件'

11)版本回退

		每次提交之后就会生成当前版本,如果出现错误,可以回退到指定版本(但会导致在它之后提交的记录都消失)

		语法:
				git reset 版本号
				git reset --hard 版本号 (不加hard回退的时候,仅回到暂存区;加上hard回到工作区)

		操作:
				查看当前提交的记录,选择回退到哪个版本
				=> git reflog
				=> git reset --hard 3bd00d8

12)可以仅仅撤销某一次版本的操作(最好是最近一次)

		创建1.html -> git add -A -> git commit -m '添加1.html文件'
		创建2.html -> git add -A -> git commit -m '添加2.html文件'
		创建3.html -> git add -A -> git commit -m '添加3.html文件'

		查看操作记录,将要撤销的版本号复制(前7位:5c43a43)
		=> git reflog

		撤销某次版本的操作(结果就是将第三步创建的3.html删除)
		=> git revert 5c43a43


		其它指令(撤销指定版本,撤销上一次,撤销上上次,撤销上上上次)
		=> git revert 版本号
		=> git revert HEAD
		=> git revert HEAD^
		=> git revert HEAD~3

本地仓与远程仓关联

仓库类型:
1)github(国外)
2)gitee(码云,国内,与github类似)
3)自建服务器(保密,可以上传机密文件)

1)直接克隆clone远程仓库中有的项目(语法:git clone 远程端url)

		拉取下来的文件有一个隐藏的.git文件夹,这是版本库,因此不需要再初始化
		=> git clone https://gitee.com/limengyue7/uni-demo.git

2)关联远程端与本地端

		可以在上传到远程仓库的时候最后检查一下是否还有需要提交的文件(=> git status)之后再进行下一步操作
	
		语法:
					git remote add remoteName(自定义的,通常是origin) url
		相关指令:
					git remote (查看本地仓库关联的远程仓库)
					git remote -v (列出关联的远程仓库详细信息)

		=> git remote add origin https://gitee.com/limengyue7/uni-demo.git
			
3)将远程仓库同步到本地

		git pull (拉取代码并和本地代码合并,一般直接使用git pull)
		语法:git pull 远程主机名 远程分支名:本地分支名

		还可以使用rebase模式进行合并,有更好的代码提交树
		语法:git pull --rebase 远程主机名 远程分支名:本地分支名
		
		拉取合并指令:
					git pull --rebase origin master (将远程端的master与当前本地的master合并)
					git pull --rebase origin master:dev (将远程端的origin的master分支拉取下来和本地的dev分支合并)
		
		(master)
		=> git pull --rebase origin master

4)将本地仓库推送到远程仓库

		语法:git push 远程主机名 本地分支名:远程分支名
		git push origin master (将本地master推送到远程的master上)
		git push origin dev:dev (将本地dev分支推送到远程端的dev上)
		
		git push -u origin master (一般第一次推送的时候加上 -u)
		-u是为了方便以后的推送只需要写git push不用写后面的origin master
		-u的意思是将本地的master和远程的master进行关联,关联一次就好了,以后直接git push

		=> git push -u origin master 

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

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

相关文章

华为OD机试 - 模拟目录管理 - 栈(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

博弈论,CF 1600E - Array Game

目录 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 二、解题报告 1、思路分析 2、复杂度 3、代码详解 一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 1600E - Array Game 二、解题报告 1、思路分析 记最长递增前缀长度为L&a…

点云倒角距离(Chamfer Distance,CD)

本文为专栏《Python三维点云实战宝典》系列文章&#xff0c;专栏介绍地址“【python三维深度学习】python三维点云从基础到深度学习_python3d点云从基础到深度学习-CSDN博客”。配套书籍《人工智能点云处理及深度学习算法》提供更加全面和系统的解析。 点云倒角距离&#xff08…

零基础5分钟上手亚马逊云科技-高可用Web系统设计最佳实践

简介&#xff1a; 欢迎来到小李哥全新亚马逊云科技AWS云计算知识学习系列&#xff0c;适用于任何无云计算或者亚马逊云科技技术背景的开发者&#xff0c;通过这篇文章大家零基础5分钟就能完全学会亚马逊云科技一个经典的服务开发架构方案。 我会每天介绍一个基于亚马逊云科技…

DT浏览器使用教程之如何使用智能问答

DT浏览器使用教程之如何使用智能问答&#xff0c; 在DT浏览器首页点智能问答&#xff0c; 在智能问答页面写上相关问题&#xff0c;点提问&#xff0c; 等待一会儿就可以显示出相关答案了&#xff0c; 点右上角保存&#xff0c;可以保存到DT浏览器的笔记本 DT浏览器是一款适合…

450nm 高功率蓝光激光模组使用多长时间需要更换

450nm蓝光激光模组以其独特的波长特性和高功率输出&#xff0c;成为了市场上备受瞩目的产品。然而&#xff0c;对于用户而言&#xff0c;了解这类高功率激光模组的使用寿命及何时需要更换&#xff0c;是确保工作效率和设备安全性的重要环节。本文将带大家了解450nm 高功率蓝光激…

华为流程框架梳理及实施

获取全部108页完成PPT材料&#xff0c;见下图

游戏发行技术体系

游戏发行技术体系 自认为一个合格的发行技术体系应该包括以下11个部分&#xff0c;并且进行了大致的初步能力划分。 其中&#xff0c;大部分的技术平台在市面上存在三方系统&#xff0c;固在左侧单独的列了一个三方&#xff0c;用来补充后续一些替代品、个人有所遗漏的内容。…

PostgreSQL案例:planning time超长问题分析

问题分析概述 库总是OOM&#xff0c;分析到是执行计划生成有问题&#xff0c;planning time 1秒&#xff0c;planning shared hit 100w。一通分析&#xff0c;定位到是统计信息基表pg_statistic膨胀&#xff0c;由于会话首次SQL执行时的CatCacheMiss&#xff0c;导致backend访…

学习C语言 第十九天

第一项 C 内存管理 内存是通过指针变量来管理的。通过一些函数和运算符&#xff0c;可以对内存进行操作&#xff0c;包括分配、释放、移动和复制等。 序号函数和描述1void *calloc(int num, int size); 在内存中动态地分配 num 个长度为 size 的连续空间&#xff0c;并将每一…

【安全靶场】-DC-7

❤️博客主页&#xff1a; iknow181 &#x1f525;系列专栏&#xff1a; 网络安全、 Python、JavaSE、JavaWeb、CCNP &#x1f389;欢迎大家点赞&#x1f44d;收藏⭐评论✍ 一、收集信息 1.查看主机是否存活 nmap -T4 -sP 192.168.216.149 2.主动扫描 看开放了哪些端口和功能 n…

企业差旅报销管理:如何管控差旅成本?

如何高效地管理和控制差旅成本,是每个企业财务部门都要面对的重要课题。作为一体化差旅报销管理平台,分贝通提供了从事前、事中到事后的全流程差旅费控方案,帮助企业实现精细化管理和成本控制。本文将详细介绍分贝通如何通过其全流程差旅费控方案帮助企业管控差旅成本,提升管理…

Ansible初识

ansible初识 Ansible是一种自动化工具&#xff0c;用于配置管理、应用程序部署和任务自动化。它基于Python语言开发&#xff0c;使用SSH协议进行通信&#xff0c;并且不需要在被管理的主机上安装任何客户端。Ansible使用简单的YAML语言来描述任务和配置&#xff0c;使得操作简…

ROS2 入门控制命令(以海龟为例)和工作空间介绍

目录 前言1 打开海龟显示窗口2 启用键盘控制窗口3 海龟按圆形轨迹运动&#xff08;圆周运动&#xff09;4 产生新的海龟5 记录并播放海龟运动轨迹ros2 bag 功能5.1 记录5.2 播放 ROS的工作空间6 创建功能包7 编译功能包 前言 命令方向特别注意空格&#xff0c;冒号后面加空格要…

力扣 | 子数组滑动窗口 | 560. 和为 K 的子数组、209. 长度最小的子数组、862. 和至少为 K的最短子数组、220. 存在重复元素 III

文章目录 一、非滑动窗口1.1 560/LCR 010. 和为 K 的子数组1.2 862. 和至少为 K 的最短子数组 二、滑动窗口2.1 209/LCR 008. 长度最小的子数组2.2 220. 存在重复元素 III 下面的题并不是全都由滑动窗口解决&#xff0c;有的题可以&#xff0c;有的题不可以&#xff0c;放入滑动…

《黑神话:悟空》Steam峰值超200万 国内玩家占9成

《黑神话&#xff1a;悟空》自今天白天上午10点解锁以来&#xff0c;Steam在线峰值不断创新高&#xff0c;白天创下的140万记录又被晚上超过。据SteamDB统计&#xff0c;随着更多“打工人”回家休息&#xff0c;《黑神话&#xff1a;悟空》Steam同时在线已经突破了200万&#x…

编程之旅:从挫折到突破的心路历程

你是如何克服编程学习中的挫折感的&#xff1f; 编程学习之路上&#xff0c;挫折感就像一道道难以逾越的高墙&#xff0c;让许多人望而却步。然而&#xff0c;真正的编程高手都曾在这条路上跌倒过、迷茫过&#xff0c;却最终找到了突破的方法。你是如何在Bug的迷宫中找到出口的…

软件产品测试报告内容简析,第三方软件测试公司测试服务分享

在数字化快速发展的今天&#xff0c;软件产品的质量直接影响着企业的竞争力与市场表现&#xff0c;软件产品测试报告作为整个测试过程的总结性文档至关重要。 一、软件产品测试报告   软件产品测试报告是测试团队对软件系统的质量评估和诊断的重要文件&#xff0c;它包含了对…

LabVIEW滚动轴承故障诊断系统

滚动轴承是多种机械设备中的关键组件&#xff0c;其性能直接影响整个机械系统的稳定性和安全性。由于轴承在运行过程中可能会遇到多种复杂的工作条件和环境因素影响&#xff0c;这就需要一种高效、准确的故障诊断方法来确保机械系统的可靠运行。利用LabVIEW开发的故障诊断系统&…

VMwareWorkstation安装ESXi 7.0U3系统详细教程

版本信息 VMwareWorkstation版本如下&#xff1a; ESXI系统镜像版本如下&#xff1a; 安装步骤 ESXi虚拟机硬件配置 选择创建新的虚拟机 选择自定义&#xff0c;点击下一步 选择ESXi 7.0&#xff0c;点击下一步 选择稍后安装操作系统&#xff0c;点击下一步 按照图下所示选择…