工作至今遇见的形形色色的Git问题

ssh方式git clone失败

报错提示

Could not read from remote repository.
Please make sure you have the correct access rights

报错原因

SSH key失效 或者 自己没有权限

解决办法——重新添加SSH key

  1. ssh-keygen -t rsa -C "username" (注:username为你git上的用户名)
  2. Generating public/private rsa key pair.

Enter file in which to save the key (C:\Users\灏忛┈/.ssh/id_rsa): 直接回车

  1. C:\Users\灏忛┈/.ssh/id_rsa already exists.

Overwrite (y/n)? y 输入y

  1. Enter same passphrase again: 直接回车
  2. Your identification has been saved in C:\Users\灏忛┈/.ssh/id_rsa. 私钥保存的地址

Your public key has been saved in C:\Users\灏忛┈/.ssh/id_rsa.pub. 公钥保存地址

  1. 根据路径找到公钥,将公钥添加到Git上

git pull失败(一)

报错提示

Your local changes to the following files would be overwritten by merge:

报错原因

其他人修改了该文件提交到版本库中,而我本地也修改了该文件,致使拉去代码的时候发生冲突

解决办法——贮存更改

依次进行如下操作
git stash 将工作区恢复到上次提交的内容,同时备份本地所做的修
git pull 拉取
git stash pop 弹出自己最近保存的内容
查看对应文件 解决冲突


image.png

然后git 三连提交自己的代码

git pull失败(二)

报错提示

Pulling is not possible because you have unmerged files.

报错原因

修改的文件未提交

这个错误其实是这样子的——其实我之前已经pull过代码了,然后出现了冲突,解决冲突之后,我想再pull一下时报的错,后来我才知道,解决掉冲突之后是需要再次commit的

解决办法——提交到本地

git add . 嗯是的,这里 commit 前也需要先 add 一下
git commit -m "获取新的代码"
git pull

git push失败

报错提示

fatal: Could not read from remote repository.
Please make sure you have the correct access rights

报错原因

原因一:github上没有添加最新的公钥
原因二:网络未连接

原因一解决办法——配置公钥

1.找到公钥打开,并复制其内容


image.png

2.添加公钥到github


image.png

image.png

说一下为什么会这样,因为github和gitlab是共用同一个公钥和私钥,在做公司项目的时候,我clone失败(上面第一个错误)时,重新配置了公钥和私钥,所以此时我的github上没有我最新的公钥,导致我无法push

原因二解决办法——连接网络

1.网线松动
2.掉出公司内网,需要重新登录
3.WiFi没网

撤销对文件的修改

描述

修改了一个复杂的index.vue文件,修改之后觉得自己写得乱糟糟的,没有一丝头绪,但这个修改文件未提交,我想恢复到它最开始的样子。

解决办法

运行命令 git status 获取到我们这个文件的路径


image.png

git checkout -- 文件完整路径(好像不加--这两个横线也能使)
然后关闭这个文件在打开就好了 在提醒你是否保存修改切记不要保存

这是一个非常危险的命令,执行此操作后git会用最近的commit覆盖掉整个文件。 除非你确实清楚不想要对那个文件的本地修改了,否则请不要使用这个命令。

自己的代码被pull下来的代码覆盖

描述

自己的代码刚刚提交,同事然后把我的代码拉下来之后也提交了,然后我再次把代码重新pull下来,发现自己刚刚写的代码全没了(备注:我合同写的同一个文件)

解决办法(一)

git log 找到最近一次提交的commit编码


image.png

git reset --hard 复制的commit编码
然后关闭这个文件在打开就好了 在提醒你是否保存修改切记不要保存

解决办法(二)

ctrl + z
使用这个办法是必须要知道,自己改动过哪些文件,并且编辑器未被关闭过(我当时编辑器刚好卡了,然后重启了一下编辑器.....)

只想拉取远端代码 不想commit

描述

自己的代码只写了一丁点,旁边的同事说他提交了,叫我pull一下,因为没写什么东西,所以不想commit

异想天开的尝试

当时我就想,可不可以直接pull,结果当然是不行啦,git会给你报如下的错误
our local changes to the following files would be overwritten by merge:

解决办法

git stash 暂存自己的打码
git pull 拉取代码
git stash pop 弹出暂存

想要回到pull之前的状态

问题描述

commit之后,把代码pull下来,出现很多冲突,然后想回到pull之前的状态,将代码格式化之后再pull

解决办法

git merge --abort 回到冲突之前的状态

git merge --abort将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,git merge --abort在某些情况下将无法重现合并前的状态。(特别是这些未commit的文件在合并的过程中将会被修改时)

查看自己的commit记录

描述

公司要求记录自己每天做了什么,想通过查看一下自己的commit记录来写日志,

解决办法

git log 此方法有缺陷,只能展示最近一次push时的commit记录
最后,只有在GitLab上的历史看了

git免密操作

问题描述

最开始到新公司接手代码时,第一时间就是配置ssh,一顿操作之后,发现不管用,后来才知道公司根本就没有噢诶之ssh这种方式。然后就一直采用http的哪一种方式拉去代码,但是使用这种方式的话每次和远程仓库打交道时都需要输入密码,后来真的嫌输入密码太烦人了,就去百度看看有没有解决办法,一查还真有(之前一直以为http方式是必须要输入密码的,所以没有第一时间去百度)

解决办法

git config --global credential.helper store
复制代码

是用哪个该命令之后,仍需再输入一次命令,之后就再也不需要输入密码了

取消merge

问题描述

在合并分支时,将要merge的分支阴差阳错merge到了master分支上,原本是要merge到1124生产包上,现在要将master分支回退到最开始的样子。

解决办法

1.切换到我们要恢复的分支(我这里是master分支)
git co master
2. 查看历史版本号,找到要恢复的版本号
git reflog

image.png

3.回退到之前的版本(我的是60a4a3f
git reset --hard 60a4a3f

另外回退之后reflog下面的记录也会消失,这都是我自己记录的时候才发现找不到自己刚才使用的版本号了

push分支代码

问题描述

自己在本地新建了一个远程没有的分支,并完成了开发,此时想要将代码推送到远程,不能直接使用git push命令[]

解决办法

这个问题的实质是我们所在的分支没有远程分支建立联系,当我们使用这个命令时,git不知道把我们的代码推送到那一个分支,所以会出现这种情况,git pull也是如此

方案一

git push origin <originBranch>
originBranch为远程分支
该方式能将分支推送到指定的分支,若远程不存在则会自动创建该分支,但之后的推送仍需指定远程分支,不能直接使用git push推送到远程

方案二

git push --set-upstream origin <originBranch>
originBranch为远程分支
该方式能将分支推送到指定的分支并建立关系,若远程不存在则会自动创建该分支,之后在此分支可以直接使用git push命令,会默认推送到与我们建立关系的远程分支。

方案三

git branch --set-upstream-to=origin/<originBranch> <localBranch>
localBranch本地分支 originBranch为远程分支
与远程分支建立关系,若远程不存在则会自动创建该分支

git commit --amend

问题描述

上一次提交忘记删除console,删除console之后又不想添加新的提交,但是第一次使用这个命令又有点懵,不知道该怎么操作....[]

解决办法

  • 输入该命令之后会弹出如下界面


    image.png
  • 因为我们只是修正我们的提交,这里并没有什么其他操作,我们先按esc退出编辑模式,然后输入:wq保存并退出就完成了

  • 最后你可以输入git log查看一下我们的commit记录

代码写错分支!!

问题描述

基于同事的分支,进行一些埋点的操作,撸代码时,自己忘了切分支了,将自己的代码写在同事的分支上了,此时自己又没有提交,怎么办??

解决办法

  1. 先将代码暂存 git stash
  2. 迁出一个分支 git checkout -b
  3. 弹出自己暂存的代码 git stash pop

修改分支名称

问题描述

原先迁出的分支名字取得不是很形象,于是想要更改分支的名称

解决办法

git branch -m oldName newName
oldName 原始分支名
newName 当前分支名

如何将本地仓库放在git上面

问题描述

自己先在本地新建了一个git仓库,进行一系列的学习,现在想将自己的本地仓库上传到github上,又想保存自己的提交记录。何解?

解决办法

  1. 现在github上新建一个远程仓库
  2. 在本地仓库下使用如下命令将两个仓库关联起来

git remote add origin <originRepoAddress>
<originRepoAddress>指的是远程仓库的地址,也就是平时我们clone用的那个地址

  1. 使用如下命令将本地仓库的所有内容推送到远程仓库

git push -u origin main
如果使用第三步的命令遇到如下错误

image.png

这是由于你新创建的那个仓库里面的README文件不在本地仓库目录中,这时我们可以通过以下命令先将内容合并:
git pull --rebase origin main
然后再进行推送

作者:mayoha
链接:https://juejin.cn/post/7021044496787832862
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容