跳转至

Git报错汇总

暑假整理

  1. mkdocs gh-deploy 后结果如下:
    Text Only
    fatal: Could not read from remote repository.
    
    Please make sure you have the correct access rights
    and the repository exists.
    Traceback (most recent call last):
      File "<frozen runpy>", line 198, in _run_module_as_main
      File "<frozen runpy>", line 88, in _run_code
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Scripts\mkdocs.exe\__main__.py", line 7, in <module>
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1157, in __call__
        return self.main(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1078, in main
        rv = self.invoke(ctx)
             ^^^^^^^^^^^^^^^^
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1688, in invoke
        return _process_result(sub_ctx.command.invoke(sub_ctx))
                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 1434, in invoke
        return ctx.invoke(self.callback, **ctx.params)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\click\core.py", line 783, in invoke
        return __callback(*args, **kwargs)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\mkdocs\__main__.py", line 314, in gh_deploy_command
        gh_deploy.gh_deploy(
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\mkdocs\commands\gh_deploy.py", line 129, in gh_deploy
        ghp_import.ghp_import(
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\ghp_import.py", line 285, in ghp_import
        git.check_call('push', opts['remote'], opts['branch'])
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\site-packages\ghp_import.py", line 119, in check_call
        sp.check_call(['git'] + list(args), **kwargs)
      File "C:\Users\leexi\AppData\Local\Programs\Python\Python312\Lib\subprocess.py", line 413, in check_call
        raise CalledProcessError(retcode, cmd)
    subprocess.CalledProcessError: Command '['git', 'push', 'origin', 'gh-pages']' returned non-zero exit status 128.
    

解决方法: 在使用 mkdocs gh-deploy 进行部署时,遇到了 Repository not foundCould not read from remote repository 错误。这通常是由于以下几个原因之一引起的:

  1. GitHub 远程仓库 URL 配置错误:你本地的 Git 仓库可能没有正确配置远程仓库的 URL。可以通过运行以下命令检查远程仓库 URL:

    Bash
    git remote -v
    
    确保显示的 URL 是正确的远程仓库地址。如果不正确,可以使用以下命令重新配置:
    Bash
    git remote set-url origin <your-repository-url>
    

  2. 没有正确的访问权限:确保你有权访问该远程仓库。你可能需要设置 SSH 密钥或 HTTPS 凭据来访问仓库。

    • SSH 密钥:确保你的 SSH 密钥已添加到 GitHub 账户中。可以通过以下命令检查 SSH 连接:
      Bash
      ssh -T git@github.com
      
    • HTTPS 凭据:如果使用 HTTPS 进行连接,确保凭据已正确配置。你可能需要输入用户名和密码,或者使用个人访问令牌(PAT)。
  3. 仓库不存在:确保远程仓库实际存在且你正在尝试推送到正确的仓库和分支。可以通过浏览器访问仓库 URL 来确认它是否存在。

以下是一些步骤来解决此问题:

  1. 检查远程仓库 URL

    Bash
    git remote -v
    

  2. 更新远程仓库 URL(如果需要)

    Bash
    git remote set-url origin git@github.com:your-username/your-repository.git
    
    或者,如果使用 HTTPS:
    Bash
    git remote set-url origin https://github.com/your-username/your-repository.git
    

  3. 验证访问权限

    • 如果使用 SSH,确保 SSH 密钥已正确配置:
      Bash
      ssh -T git@github.com
      
    • 如果使用 HTTPS,确保凭据已正确配置。
  4. 尝试手动推送

    Bash
    git push origin gh-pages
    
    这将帮助你确认问题是否出在 mkdocs gh-deploy 上,或者是 Git 推送过程中的问题。

通过上述步骤,你应该能够解决 mkdocs gh-deploy 过程中遇到的仓库访问问题。如果问题仍然存在,可以提供更多详细信息,以便进一步诊断。

Text Only
PS D:\zjuers-slowist-version> git remote remove origin
PS D:\zjuers-slowist-version> git remote add origin git@github.com:Slowist-Lee/zjuers-slowist-version.git
PS D:\zjuers-slowist-version> git push -u origin "master"
ssh: connect to host github.com port 22: Connection refused
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
PS D:\zjuers-slowist-version> git remote remove origin
PS D:\zjuers-slowist-version> git remote add origin https://github.com/Slowist-Lee/zjuers-slowist-version.git
PS D:\zjuers-slowist-version> git push -u origin "master"
To https://github.com/Slowist-Lee/zjuers-slowist-version.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://github.com/Slowist-Lee/zjuers-slowist-version.git'
hint: Updates were rejected because the remote contains work that you do not
hint: have locally. This is usually caused by another repository pushing to
hint: the same ref. If you want to integrate the remote changes, use
hint: 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
PS D:\zjuers-slowist-version> git pull origin master
remote: Enumerating objects: 5, done.
remote: Counting objects: 100% (5/5), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 100% (3/3), 979 bytes | 244.00 KiB/s, done.
From https://github.com/Slowist-Lee/zjuers-slowist-version
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
Auto-merging index.html
Merge made by the 'ort' strategy.
 index.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
PS D:\zjuers-slowist-version> git add .
PS D:\zjuers-slowist-version> git push -u origin "master"
Enumerating objects: 13, done.
Counting objects: 100% (13/13), done.
Delta compression using up to 20 threads
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 885 bytes | 885.00 KiB/s, done.
Total 9 (delta 6), reused 0 (delta 0), pack-reused 0 (from 0)
remote: Resolving deltas: 100% (6/6), completed with 2 local objects.
To https://github.com/Slowist-Lee/zjuers-slowist-version.git
   f2611b5..5c025a8  master -> master
branch 'master' set up to track 'origin/master'.
PS D:\zjuers-slowist-version>

解决方法, 要使用远程仓库更新你的本地仓库,你可以使用git fetchgit merge命令,或者更简便地,直接使用git pull命令。以下是两种常见方法的步骤:

方法1:使用git fetchgit merge

  1. 获取远程更新:首先,使用git fetch命令从远程仓库获取最新的数据,但不自动合并到本地分支。

    Text Only
    git fetch origin
    
    这里origin是远程仓库的默认名称,如果你的远程仓库命名不同,请替换为相应的名称。

  2. 查看更新:你可以使用git log命令查看远程分支与本地分支之间的差异,确认有哪些更新。

    Text Only
    git log master..origin/master
    
    假设你要更新的是master分支,如果是其他分支,请相应替换。

  3. 合并更新:确认无误后,使用git merge命令将远程分支的更新合并到本地分支。

    Text Only
    git merge origin/master
    
    同样,如果操作的不是master分支,请替换为正确的分支名。

方法2:使用git pull

git pull命令是git fetchgit merge的组合,它会直接从远程仓库获取最新的代码并尝试自动合并到你的当前分支。

Text Only
git pull origin master
这条命令将会从名为origin的远程仓库的master分支获取最新代码,并自动与你的本地master分支合并。如果当前分支就是你要更新的分支,可以省略冒号后面的本地分支名:
Text Only
git pull origin
如果你的本地分支已经设置了跟踪远程分支(通常是通过git clone时自动设置的),那么上述简化命令就足够了。

注意事项

  • 在执行这些操作前,确保你的工作目录是干净的,没有未提交的改动,以避免合并冲突。
  • 如果你在团队协作中,建议先fetch查看更新,评估影响后再决定是否合并,尤其是在进行重要或大型更新时。
  • 如果你想完全用远程仓库的内容覆盖本地更改,可以使用git fetch之后,执行git reset --hard origin/branch_name,但这会丢失本地未提交的更改,请谨慎使用。

要清除一个Git仓库的远程链接,你可以使用git remote remove命令(或者它的别名git remote rm)。这个命令会断开仓库与指定远程服务器的连接。下面是具体的操作步骤:

  1. 打开命令行:首先,你需要在包含Git仓库的本地目录下打开命令行工具。

  2. 查看当前远程链接:在执行删除操作之前,可以通过下面的命令查看当前仓库配置的所有远程链接:

    Text Only
    git remote -v
    
    这个命令会列出所有远程仓库的名称(如origin)以及它们对应的URL。

  3. 删除远程链接:确定要删除的远程仓库名称后,使用下面的命令进行删除,将[remote_name]替换为实际的远程仓库名称(例如origin):

    Text Only
    git remote remove [remote_name]
    
    或者使用它的别名:
    Text Only
    git remote rm [remote_name]
    
    执行这个命令后,该远程仓库的链接就会从你的本地仓库配置中移除。

请注意,这个操作只影响本地仓库的配置,并不会影响远程仓库本身及其存储的数据。如果你想要删除远程仓库服务上的仓库(比如Gitee或GitHub上的仓库),你需要登录到相应的平台,并在那里执行删除操作。

PS D:\college application> git clone https://github.com/Slowist-Lee/college_application.git Cloning into 'college_application'... remote: Enumerating objects: 162, done. remote: Counting objects: 100% (162/162), done. remote: Compressing objects: 100% (122/122), done. remote: Total 162 (delta 29), reused 147 (delta 17), pack-reused 0 Receiving objects: 100% (162/162), 1.47 MiB | 953.00 KiB/s, done. Resolving deltas: 100% (29/29), done. PS D:\college application> git fetch origin fatal: not a git repository (or any of the parent directories): .git

看起来你在尝试克隆一个GitHub仓库到本地,并且已经成功克隆了名为college_application的仓库。但是,当你尝试执行git fetch origin命令时,遇到了错误,提示fatal: not a git repository (or any of the parent directories): .git。这通常意味着当前目录不是一个Git仓库,或者.git目录没有正确设置。

以下是一些可能的解决步骤:

  1. 确保当前目录正确:首先,确保你在正确的目录中。使用cd命令切换到你克隆的仓库目录,例如:

    Text Only
    cd D:\college application\college_application
    
    注意,路径中的空格可能需要用引号括起来。

  2. 检查.git目录:在仓库的根目录中,应该有一个.git目录。如果这个目录不存在,可能是因为克隆过程中出现了问题。你可以尝试重新克隆仓库。

  3. 初始化Git仓库:如果.git目录不存在,你可以使用git init命令来初始化一个新的Git仓库:

    Text Only
    git init
    

  4. 添加远程仓库:如果这是一个新的Git仓库,你需要添加远程仓库的URL:

    Text Only
    git remote add origin https://github.com/Slowist-Lee/college_application.git
    

  5. 拉取远程仓库的最新内容:然后,你可以再次尝试拉取最新的内容:

    Text Only
    git fetch origin
    

  6. 检查网络连接:如果问题依旧存在,检查你的网络连接是否正常,以及GitHub仓库的URL是否正确。

  7. 检查权限问题:确保你有权限访问该GitHub仓库。

如果以上步骤都无法解决问题,可能需要更详细的错误信息或者检查你的Git配置。