Git作为目前世界上最先进的分布式版本控制系统,在国内外备受欢迎,基本上科技公司的项目都或多或少使用到Git进行版本管理,然而,Git命令繁多,许多使用者在使用命令过程中会遇到一些问题 ,本文就日常开发工作中常用的Git命令以及相关问题做了整理,给Git使用者进行参考。
场景:许多时候我们在本地搭建好的项目想跟远端仓库的项目关联并推送到远端仓库中,这时候就需要使用Git的相关命令来实现。
实现步骤:
问题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 -d 分支名称
删除未合并的本地分支:git branch -D 分支名称
删除远端仓库分支:git branch origin -d 远端分支名称
场景:在开发好新功能或者修复了紧急bug后,我们需要将最新的代码进行发布,通常的方式就是在测试好的分支上进行tag打包并发布,具体步骤如下:
Tag和Branch的区别
场景:你有没有遇到过这样一个情况,功能开发或bug修复到一半时,临时来了一个紧急需求需要处理,此时的代码无法提交,否则其他人拉取可能会出现问题,此时你就需要git stash的帮忙了。
git stash命令允许你将当前进度(工作区和暂存区)的内容保存起来,方便切换到其他分支处理紧急事情,后续可以再回复当前进度,具体用法如下。
1、存储工作区和缓冲区
2、查询缓存列表
3、恢复缓冲区内容
4、删除缓存进度
5、清空整个堆栈
6、查看缓存进度和当前目录差异
7、以最新缓存进度为依照,创建最新分支
场景:有时候,一个项目可能多同时同步多个远程库如gitee、github等,此时可以借助remote命令查看仓库同步的列表
虽然现在市面上有图形化的Git操作工具,但是更多时候通过命令行的方式是一种更好的方式,一个是在出现问题时能够尽快定位,很多图形化工具操作差异,导致出现问题时不好排查,另外一个是面试中也会有遇到Git相关的题目,可以更好为面试做准备。