当前位置:   article > 正文

Git 使用时遇到的问题汇总(目前8个问题)_git unable to access

git unable to access

注:本文无特别声明默认都在Windows系统中出现的问题,在其它操作系统操作标题前会标注。 

 1、git commit错误:unable to auto-detect email address

(1)执行命令及错误信息

  1. $ git commit -m 'first commit with solidity scripts'
  2. *** Please tell me who you are.
  3. Run
  4. git config --global user.email "you@example.com"
  5. git config --global user.name "Your Name"
  6. to set your account's default identity.
  7. Omit --global to set the identity only in this repository.
  8. fatal: unable to auto-detect email address (got 'Tracy@DESKTOP-101.(none)')

(2)解决方案

1)修改此项目配置(推荐)

方法一:使用命令

  1. git config user.name username
  2. git config user.email you@example.com

方法二:修改配置文件

进入项目下的 .git 目录,打开文件 config,在最前面添加一下代码

 [user]
 email=you@example.com
 name=username


2)修改全局配置(使用命令)

  1. git config --global user.name username
  2. git config --global user.email you@example.com

2、(CentOS系统)每次pull等操作都要用户名密码

(1)执行命令及提示信息 

  1. [root@Tracy ~]# git pull origin branchName
  2. Username for 'https://gitee.com': xxxxx@xxx.com #请求输入用户名
  3. Password for 'https://xxxxx@xxx.com@gitee.com': #请求输出密码
  4. From https://gitee.com/talent-chain/hr-contracts
  5. * branch branchName -> FETCH_HEAD
  6. Already up-to-date.

(2)解决方案

1)执行命令,生成.gitconfig文件

$ git config --global credential.helper store

执行以上命令会在/root目录下生成一个.gitconfig的隐藏文件,查看一下

  1. [root@Tracy ~]# ls -a #查看root目录下文件(包含隐藏文件)
  2. . .bash_logout .bashrc .cshrc .gitconfig .pki .tcshrc
  3. .. .bash_profile .cache .ethash .pip .pydistutils.cfg .ssh
  4. [root@Tracy ~]# cat .gitconfig #查看.gitconfig文件内容
  5. [credential]
  6. helper = store

2)编辑文件.gitconfig

[root@Tracy ~]# vi .gitconfig 

在文件头部增加下面内容(加[user]部分即可):

  1. [user]
  2. name = username
  3. email = email
  4. [credential]
  5. helper = store

按Esc退出编辑,输入:wq保存退出 

3)再次执行git pull或相关命令,生成.git-credentials文件

执行git pull(或之前执行的命令)时还会提示一次输入用户名密码,之后就不再需要了。

此时,再次查看root目录下的文件,此时多了一个.git-credentials文件,有了这个文件以后就不再一个请求输入用户名密码了

  1. [root@Tracy ~]# ls -a
  2. . .bash_logout .bashrc .cshrc .gitconfig .pip .pydistutils.cfg .ssh
  3. .. .bash_profile .cache .ethash .git-credentials .pki .tcshrc

3、git add . 执行完直接执行git reset --hard,add中从未被提交的文件(即新增文件)全部被删除了

(1)执行操作 

  1. $ git add .
  2. $ git reset --hard
  3. Deletion of directory 'contract' failed. Should I try again? (y/n) n
  4. HEAD is now at ece38f4 Initial commit

上面的操作导致新增文件全被删除,使用git reset --hard前请仔细思考再操作

(2)找回文件方法

 恢复文件

  1. $ git fsck --full --unreachable --no-reflog
  2. Checking object directories: 100% (256/256), done.
  3. Checking objects: 100% (357/357), done.
  4. unreachable blob a4f0f1b2b339bf255504bb6929f83a5476c19740
  5. unreachable blob ba98e9463e9f44f63b3b23532070b3c78ecadb8e
  6. unreachable blob f7eca1298a7febf048a7d66e8453f5471355695e
  7. unreachable blob 45457832306f2459671dad6df2a5c4263089f19c
  8. # 略去许多被删除的文件blob......

通过以下指令可优雅的查看文件内容 

git cat-file -p SHA  #SHA为blob对象的哈希值,即上面查看到unreachable blob后面的值

  1. $ git cat-file -p 45457832306f2459671dad6df2a5c4263089f19c
  2. // SPDX-License-Identifier: MIT
  3. // OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
  4. pragma solidity ^0.8.7;
  5. /**
  6. * @dev Provides information about the current execution context, including the
  7. * sender of the transaction and its data. While these are generally available
  8. * via msg.sender and msg.data, they should not be accessed in such a direct
  9. * manner, since when dealing with meta-transactions the account sending and
  10. * paying for execution may not be the actual sender (as far as an application
  11. * is concerned).
  12. *
  13. * This contract is only required for intermediate, library-like contracts.
  14. */
  15. abstract contract Context {
  16. function _msgSender() internal view virtual returns (address) {
  17. return msg.sender;
  18. }
  19. function _msgData() internal view virtual returns (bytes calldata) {
  20. return msg.data;
  21. }
  22. }

可将查询的文件内容复制粘贴到文件中。

但是奇怪的是,.sol与.json文件都能查看文件内容,但是.go文件只能看到第一行,其它内容全看不到了,以下是一个.go文件的查看结果:

  1. $ git cat-file -p f7eca1298a7febf048a7d66e8453f5471355695e
  2. package tools

再查看下.go文件的大小,发现只是14,与上面第一行大小一致,这个是还原不了了,也很悲催了,大家要是有什么方法,给我留言哈

  1. $ git cat-file -s f7eca1298a7febf048a7d66e8453f5471355695e
  2. 14

4、git pull 报错(github):fatal: unable to access 'https://github.com/xxxxx.git/': Failed to connect to github.com port 443: Timed out

(1)执行操作与错误信息

$ git pull origin main

错误信息 

fatal: unable to access 'https://github.com/xxxxx.git/': Failed to connect to github.com port 443: Timed out

(2)原因

原因未知,之前一直使用gitee,现在使用github,不知是否有关

(3)解决方案

1)取消代理(未成功)

  1. $ git config --global --unset http.proxy
  2. $ git config --global --unset https.proxy

取消代理后,再次git pull,仍然报原来的错误。 

2)解除验证(成功)

$ git config --global http.sslVerify "false"

再次git pull成功

5、git push报错(github):Logon failed, use ctrl+c to cancel basic credential prompt.

(1)执行操作与错误信息

输入2次用户密码,报错如下: 

  1. $ git push origin main
  2. Logon failed, use ctrl+c to cancel basic credential prompt.
  3. remote: Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
  4. remote: Please see https://github.blog/2020-12-15-token-authentication-requirements-for-git-operations/ for more information.
  5. fatal: Authentication failed for 'https://github.com/tracyzhang1998/web3js-demo.git/'

(2)原因

以上第2次输入密码时应该为github上设置的token,即只有有权限的用户才能做push操作的验证。

(3)解决方案

1)生成token

登录github,点击右上角头像 ->  Settings -> Developer settings(在左侧菜单最下方)-> Personal access tokens -> click "Generate a personal access token"

 再次确认密码

 新建token,如下两图所示:

 

 2)保存token

  复制保存好这个token,关闭这个页面后token再也出不来了(如果没记住,重新生成即可)

3)token验证

再次git push,会输入2次用户名密码,2次用户名是一样的,第1次密码输入登录密码,第2次密码输入刚刚生成的token

下图是第1次输入的用户名密码

用户名密码输入正确,会提示:Logon failed, use ctrl+c to cancel basic credential prompt.再次输入第2次用户名密码,密码为token(第2次没有截图下来)

6、git push报错(github): error: src refspec main does not match any

(1)执行命令及错误信息

  1. Tracy@DESKTOP-101 /f/web3js/github/tracyzhang1998.github.io (master)
  2. $ git push origin main
  3. error: src refspec main does not match any
  4. error: failed to push some refs to 'https://github.com/tracyzhang1998/tracyzhang1998.github.io.git'

(2)原因

在github仓库中,分支名称为main,当本地clone仓库中分支名称默认为master,但是github上没有master,导致提交出错( add与commit时没有出错 )

(3)解决方案

重命名分支名称

  1. Tracy@DESKTOP-101 /f/web3js/github/tracyzhang1998.github.io (master)
  2. $ git branch -m master main # 重命令分支
  3. Tracy@DESKTOP-101 /f/web3js/github/tracyzhang1998.github.io (main)
  4. $ git push origin main # 再次push
  5. Enumerating objects: 8, done.
  6. Counting objects: 100% (8/8), done.
  7. Delta compression using up to 8 threads
  8. Compressing objects: 100% (5/5), done.
  9. Writing objects: 100% (7/7), 230.40 KiB | 9.60 MiB/s, done.
  10. Total 7 (delta 0), reused 0 (delta 0)
  11. To https://github.com/tracyzhang1998/tracyzhang1998.github.io.git
  12. e24e89b..90afdb0 main -> main

7、git clone报错(github): OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

(1)执行命令及错误信息

  1. Tracy@DESKTOP-101 /f/Golang/sl/contract
  2. $ git clone https://github.com/tracyzhang1998/smartcontract.git
  3. Cloning into 'smartcontract'...
  4. fatal: unable to access 'https://github.com/tracyzhang1998/smartcontract.git/': OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054

(2)原因

服务器证书SSL没有经过第三方机构签署

(3)解决方案

$ git config --global http.sslVerify "false"

再次git clone成功。

8、.gitignore文件配置忽略文件不起作用

(1)问题

已提交过的配置文件,之后不想再提交

(2)解决方案

$ git update-index --assume-unchanged config/*

9、移除登录的git账户(windows10)

(1)问题

临时在某台电脑上使用的账户下载源码,下载后想将账户删除,不保留在这台电脑上

(2)解决方案

打开控制面板 -> 用户账户 -> 凭据管理器

找到git开头的协议,查看要删除的账户,点击“删除”即可,如下图所示

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/1012761
推荐阅读
相关标签
  

闽ICP备14008679号