Git常见问题

1.关于本地库和远程库main和master的问题

刚开始使用github和git时,你可能会按以下(错误)步骤操作:
创建一个仓库,命名,描述,然后添加README和license。
这里我们注意最后一句话:
github告诉我们它将会为我们的新仓库创建main作为默认的branch。
然后我们的新仓库就创建好了,同时,我们希望在本地也创建一个文件夹与这个仓库建立联系,这样我们就可以在本机的command使用git直接向远程仓库commit我们的代码,而不用打开github。
这里我在d盘创建了一个example文件夹作为本地仓库的载体(默认git已经安装并配置好了),

执行 git init 指令在这个文件夹创建了一个仓库。

随后我在example文件夹中创建一个新文件hello world.txt,现在我希望commit本次更改到我刚刚创建好的github仓库,首先我复制了我远程仓库的地址:

执行git remote add … …指令与远程仓库的建立连接:

然后git add .提交到缓冲区,git commit -m "…"提交commit,一切看起来那么顺利,只需最后git push 就愉快的结束了。

这里我们还记得github为我们创建的默认分支main,我们push到这个分支。

糟糕的部分来了:

error: src refspec main does not match any
1
在这里插入图片描述

接下来我们分析上面步骤错误的原因:
mian 和 master

你可能已经注意到了,在我们每次使用git指令时,git都在一直用蓝色的字提示我们当前处在一个叫master的分支:

这是git为我们创建的默认分支,而在上述过程中我们完全无视了这一点,我们只关心github上的那个main分支,至于为什么它们的默认分支不同,github给出的解释是:

GitHub is working on replacing the term “master” on its service with a neutral term like “main” to avoid any unnecessary references to slavery

github觉得master有点slavery那味。

所以原因就是github的仓库中没有master这个分支,我们本地的仓库没有main分支,那好办,我们将本地仓库的master分支改名为main分支,它们不就统一了?

执行git branch -m master main,可以看到master已经被成功改为main了,如此,我们继续push就不会有什么问题了吧?

在这里插入图片描述

! [rejected] main -> main (non-fast-forward)
这个问题解释起来很简单,还记得我们创建仓库时添加到README和license吗?在github仓库的main分支中有这两个文件,而在我们本地的仓库并没有这两个文件,如果我们执行这次commit,那么可能导致这两个文件丢失。

接下来你有以下几个解决方案:下列代码中的example为远程仓库名称

无视警告,README和license我不要了。
			**git push --force**
1 执行以上指令强行提交。
2.	试着获取远程仓库的初始提交( initial commit),就是README和license这两个文件的commit,在此基础上 rebase commit。但是这种方法		可能有点棘手,不如暴力提交简单。
	1git fetch example //获取初始提交
	2git rebase example/mian 

3.试着合并初始提交与你的提交,这也是我最推荐的方法:
	1git fetch example
	2git merge --allow-unrelated-histories example/main
	首先执行git fetch example 获取初始提交

然后执行git merge --allow-unrelated-histories example/main合并,之后会进入这样一个文件,提示我们为本次提交加一些信息备注,我们很清楚我们在做什么,所以按两下ESC键,输入**:wq**(注意有冒号,这是UNIX保存的命令),回车

可以看到本地的git仓库已经与远程仓库合并了,README和license也可以在本地仓库找到了。

最后我们git push example main

原文链接:https://blog.csdn.net/gongdamrgao/article/details/115032436

关于本地新增了文件但是git status不更新

可能是新增了文件夹,需要新增除文件夹的文件就可以更新。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Git是一个非常流行的版本控制系统,但有时候在使用中会出现错误。下面是一些常见的Git错误代码以及解决办法: 1. 错误代码:fatal: refusing to merge unrelated histories 解决办法:在执行git pull命令时添加--allow-unrelated-histories参数,即git pull origin master --allow-unrelated-histories 2. 错误代码:error: failed to push some refs to 'git@github.com:XXX/XXX.git' 解决办法:先执行git pull命令更新本地代码,再执行git push命令推送代码 3. 错误代码:fatal: not a git repository (or any of the parent directories): .git 解决办法:进入正确的git仓库目录 4. 错误代码:fatal: unable to access 'https://github.com/XXX/XXX.git/': OpenSSL SSL_connect: SSL_ERROR_SYSCALL in connection to github.com:443 解决办法:检查网络连接,或者将https改为ssh协议,即git@github.com:XXX/XXX.git 5. 错误代码:error: Your local changes to the following files would be overwritten by merge 解决办法:先执行git stash命令,将本地修改保存起来,再执行git pull命令更新代码,最后执行git stash pop命令恢复本地修改 6. 错误代码:fatal: the remote end hung up unexpectedly 解决办法:检查网络连接,或者将git缓存设置为最大值,即git config --global http.postBuffer 524288000 7. 错误代码:error: pathspec 'XXX' did not match any file(s) known to git 解决办法:检查输入的文件名是否正确,或者执行git add命令添加文件 这些是常见的Git错误代码和解决办法,希望能对你有所帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值