百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT技术 > 正文

「实用」盘点那些开发中最常用的Git命令

wptr33 2025-02-15 17:38 24 浏览

前言

??Git作为目前世界上最先进的分布式版本控制系统,在国内外备受欢迎,基本上科技公司的项目都或多或少使用到Git进行版本管理,然而,Git命令繁多,许多使用者在使用命令过程中会遇到一些问题 ,「本文就日常开发工作中常用的Git命令以及相关问题做了整理,给Git使用者进行参考。」


本地项目推送到Gitee、Github、Gitlab

??场景:许多时候我们在本地搭建好的项目想跟远端仓库的项目关联并推送到远端仓库中,这时候就需要使用Git的相关命令来实现。

??实现步骤:

  • 进入到项目所在的目录下,打开Git命令窗口,执行: git init命令将项目初始化为git项目


  • 执行【git add . 】将代码添加到暂存区


  • 执行【git commit -m ‘提交注释’ . 】将代码提交到本地仓库


  • 在远端仓库如Gitlab、Github上复制项目的url,使用命令:【git remote add origin 仓库地址】,将本地仓库和远端仓库建立关联


  • 执行【git pull origin 远端仓库分支名称】命令拉取远端仓库上的文件到本地


  • 如果有拉取到新文件则重新执行git commit命令将新文件添加到本地仓库


  • 执行【git push --set-upstream origin 远端分支名称】将本地代码推送到远端仓库

使用该命令常遇到的问题

??「问题1、」 Git push:unable to access Could not resolve host

??主要原因是没有推送到远端仓库的权限,需要找管理员开权限,然后重新执行Git push命令进行推送即可。

??「问题2、」 执行git push --set-upstream origin master或者Git push出现: The project you were looking for could not be found

??解决:在执行git clone或者git push添加上用户名即可,如:git clone https://用户名@gitee.com/it-learning-diary/it-wheels-king.git

??查看当前Git的用户名和邮箱的命令:git config user.name/email

??「问题3、」 如果已经使用了git remote add origin命令关联远程仓库后发现Url错了或者出现问题2需要在url加上用户名,想重新关联时出现: fatal: remote origin already exists

??解决:使用git remote rm origin(删除关联的origin的远程库)

??「问题4、」 git push时出现remote: XX: Incorrect username or password (access token)

??解决:将提交的git的名称修改成和github或者Gitee仓库中名称一样的,修改命令:git config user.name "用户名称"

??「问题5、」 拉取远端推送时出现:Git :fatal: refusing to merge unrelated histories解决

??原因:是本地仓库和远端仓库两个分支是两个不同的版本,具有不同的提交历史,需要将他们合并并解决冲突。

??解决:git pull origin 分支名称如master --allow-unrelated-histories



创建本地分支并推送到远端

??场景:许多时候,我们可能需要根据远端某一分支创建新的分支进行开发,此时就需要进行分支创建并推送操作。

??「方式、使用git checkout命令创建,步骤如下:」

??步骤1、以远端某一个分支为参照物,创建一个本地分支且切换到该本地分支,「命令:git checkout -b 本地分支名称 origin/远端分支名称」

??步骤2、将新创建的本地分支推送到远端仓库(此时会在远端仓库创建对应的分支),「命令:git push origin 远端分支的名称」

??步骤3、将本地分支和远端分支绑定,方便后续push代码,「命令:git push --set-upsteam origin 远端需要绑定的分支名称」


??「相关命令」

  • 查看本地分支名称:git branch


  • 查看本地和远端所有分支名称: git branch -a

删除分支

??场景:有些时候,我们需要删除本地或者远端仓库中一些已经不必要或者无用的分支,此时则使用到了git branch命令。

??删除本地分支:git branch -d 分支名称

??删除未合并的本地分支:git branch -D 分支名称

??删除远端仓库分支:git branch origin -d 远端分支名称



打标签

??场景:在开发好新功能或者修复了紧急bug后,我们需要将最新的代码进行发布,通常的方式就是在测试好的分支上进行tag打包并发布,具体步骤如下:

  • 查看项目的tag版本:git tag


  • 打新的tag包:git tag -a tab版本名(如V-1.0.0.prod.202206012211) -m '备注'


  • 推送指定名称tag包到仓库:git push origin tag包名称


  • 推送所有tag到仓库:git push origin -tags


??「Tag和Branch的区别」

  • tag可以看做是版本库中的一个标记,指向某一commit的指针,主要用于发布版本的管理,它指向的commit是固定的,无法移动。


  • branch则是由一系列的commit组成,由的多个点连成的一个提交线,通过HEAD指针进行commit点移动。


  • tag通常用于版本发布,branch通常用于业务开发

存储/更改缓存

??场景:你有没有遇到过这样一个情况,功能开发或bug修复到一半时,临时来了一个紧急需求需要处理,此时的代码无法提交,否则其他人拉取可能会出现问题,此时你就需要git stash的帮忙了。

??git stash命令允许你将当前进度(工作区和暂存区)的内容保存起来,方便切换到其他分支处理紧急事情,后续可以再回复当前进度,具体用法如下。

??「1、存储工作区和缓冲区」

  • git stash 或者 git stash save '缓冲区名称'

??「2、查询缓存列表」

  • git stash list

??「3、恢复缓冲区内容」

  • git stash pop [stash_id]:默认恢复最新缓存进度,同时删除该缓存


  • git stash apply [stash_id]:恢复指定缓存版本内容,并不删除堆栈中的内容

??「4、删除缓存进度」

  • git stash drop [stash_id]:删除指定的缓存进度,如果不指定stashId,则默认删除最新的存储进度

??「5、清空整个堆栈」

  • git stash clear

??「6、查看缓存进度和当前目录差异」

  • git stash show [stash_id],如:git stash show stash@{1}

??「7、以最新缓存进度为依照,创建最新分支」

  • git stash branch 分支名称



查看当前相同同步的远程库列表

??场景:有时候,一个项目可能多同时同步多个远程库如gitee、github等,此时可以借助remote命令查看仓库同步的列表

  • git remote -v



写在最后

??虽然现在市面上有图形化的Git操作工具,但是更多时候通过命令行的方式是一种更好的方式,「一个是在出现问题时能够尽快定位,很多图形化工具操作差异,导致出现问题时不好排查,另外一个是面试中也会有遇到Git相关的题目,可以更好为面试做准备。」

??「如果文章对你有帮助,欢迎给我点赞、关注。如有疑问,欢迎添加博主进行交流。」

相关推荐

oracle数据导入导出_oracle数据导入导出工具

关于oracle的数据导入导出,这个功能的使用场景,一般是换服务环境,把原先的oracle数据导入到另外一台oracle数据库,或者导出备份使用。只不过oracle的导入导出命令不好记忆,稍稍有点复杂...

继续学习Python中的while true/break语句

上次讲到if语句的用法,大家在微信公众号问了小编很多问题,那么小编在这几种解决一下,1.else和elif是子模块,不能单独使用2.一个if语句中可以包括很多个elif语句,但结尾只能有一个else解...

python continue和break的区别_python中break语句和continue语句的区别

python中循环语句经常会使用continue和break,那么这2者的区别是?continue是跳出本次循环,进行下一次循环;break是跳出整个循环;例如:...

简单学Python——关键字6——break和continue

Python退出循环,有break语句和continue语句两种实现方式。break语句和continue语句的区别:break语句作用是终止循环。continue语句作用是跳出本轮循环,继续下一次循...

2-1,0基础学Python之 break退出循环、 continue继续循环 多重循

用for循环或者while循环时,如果要在循环体内直接退出循环,可以使用break语句。比如计算1至100的整数和,我们用while来实现:sum=0x=1whileTrue...

Python 中 break 和 continue 傻傻分不清

大家好啊,我是大田。今天分享一下break和continue在代码中的执行效果是什么,进一步区分出二者的区别。一、continue例1:当小明3岁时不打印年龄,其余年龄正常循环打印。可以看...

python中的流程控制语句:continue、break 和 return使用方法

Python中,continue、break和return是控制流程的关键语句,用于在循环或函数中提前退出或跳过某些操作。它们的用途和区别如下:1.continue(跳过当前循环的剩余部分,进...

L017:continue和break - 教程文案

continue和break在Python中,continue和break是用于控制循环(如for和while)执行流程的关键字,它们的作用如下:1.continue:跳过当前迭代,...

作为前端开发者,你都经历过怎样的面试?

已经裸辞1个月了,最近开始投简历找工作,遇到各种各样的面试,今天分享一下。其实在职的时候也做过面试官,面试官时,感觉自己问的问题很难区分候选人的能力,最好的办法就是看看候选人的github上的代码仓库...

面试被问 const 是否不可变?这样回答才显功底

作为前端开发者,我在学习ES6特性时,总被const的"善变"搞得一头雾水——为什么用const声明的数组还能push元素?为什么基本类型赋值就会报错?直到翻遍MDN文档、对着内存图反...

2023金九银十必看前端面试题!2w字精品!

导文2023金九银十必看前端面试题!金九银十黄金期来了想要跳槽的小伙伴快来看啊CSS1.请解释CSS的盒模型是什么,并描述其组成部分。答案:CSS的盒模型是用于布局和定位元素的概念。它由内容区域...

前端面试总结_前端面试题整理

记得当时大二的时候,看到实验室的学长学姐忙于各种春招,有些收获了大厂offer,有些还在苦苦面试,其实那时候的心里还蛮忐忑的,不知道自己大三的时候会是什么样的一个水平,所以从19年的寒假放完,大二下学...

由浅入深,66条JavaScript面试知识点(七)

作者:JakeZhang转发链接:https://juejin.im/post/5ef8377f6fb9a07e693a6061目录由浅入深,66条JavaScript面试知识点(一)由浅入深,66...

2024前端面试真题之—VUE篇_前端面试题vue2020及答案

添加图片注释,不超过140字(可选)1.vue的生命周期有哪些及每个生命周期做了什么?beforeCreate是newVue()之后触发的第一个钩子,在当前阶段data、methods、com...

今年最常见的前端面试题,你会做几道?

在面试或招聘前端开发人员时,期望、现实和需求之间总是存在着巨大差距。面试其实是一个交流想法的地方,挑战人们的思考方式,并客观地分析给定的问题。可以通过面试了解人们如何做出决策,了解一个人对技术和解决问...