Git 与远程仓库实操记录:克隆、配置、分支推送与问题排查

目录


一、VSCode中Git相关内容

1. 工作区文件标注的含义

  1. U:Untracked
    在本地新建了文件,且还未被Git跟踪(未加入暂存区)
  2. 6,U
    有6个错误且untracked
  3. A:Added
    该文件是新添加的文件,且首次被Git跟踪。
    当使用git add命令将新文件添加到暂存区,文件状态会从U变成A
  4. M:Modified
    对已跟踪的文件进行修改
  5. D:Delete
    删除了这个文件

2. Git相关操作

  1. 保存加粗样式
    在工作区保存
  2. Commit/提交
    自动暂存,并将文件保存在本地仓库
  3. Sync Changes
    将更改同步到远程仓库
  4. GitHub上的提交时间
    同步到远程仓库的时间

二、Git推送(新建分支)

当前背景 :Ubuntu子系统的一个本地写的文件,希望推送到远程仓库的新分支
项目地址http://xxx.xxx.xxx.xxx:port/path/to/repo
仓库地址http://xxx.xxx.xxx.xxx/path/to/repo.git

  1. 设置全局Git用户信息

    去掉--global是只为当前仓库设置

    shell 复制代码
    git config --global user.email "your.email@example.com"
    git config --global user.name "Your Name"
  2. 验证配置

    shell 复制代码
    git config --list | grep user
  3. 进入项目目录

    shell 复制代码
    cd /path/to/your/project
  4. 初始化仓库

    shell 复制代码
    git init
  5. 添加原始GitLab仓库为远程源

    shell 复制代码
    git remote add origin http://xxx.xxx.xxx.xxx/path/to/repo.git
  6. 验证远程仓库

    shell 复制代码
    git remote -v
  7. 创建并切换到新分支

    例如命名为 wk_dev_demo

    shell 复制代码
    git checkout -b wk_dev_demo
  8. 添加所有更改文件(或指定文件)到本地

    shell 复制代码
    git add .
  9. 提交更改到本地

    shell 复制代码
    git commit -m "提交说明"
  10. 首次推送需设置上游分支

    shell 复制代码
    git push --set-upstream origin wk_dev_demo
  11. 后续推送只需

    shell 复制代码
    git push

    发现git push连接不上,进行下面一行命令,然后重新commit

    shell 复制代码
    # 修改为可访问的URL
    git remote set-url origin http://xxx.xxx.xxx.xxx:port/path/to/repo.git

三、Git常用命令

  1. 文件暂存

    shell 复制代码
    git add <文件名>
  2. 文件保存在本地仓库

    shell 复制代码
    git commit -m "提交的注释"
  3. 查看提交历史

    shell 复制代码
    git log
  4. 以单行格式显示项目的提交历史

    shell 复制代码
    git log --oneline

四、命令行克隆的一些问题

  1. Gitee克隆

    1. Gitee在linux进行HTTPS克隆项目时需要用户名和密码,而用ssh克隆后续可以不需要用户名密码。具体操作步骤在gitee克隆页面有写。
    2. 如何让Gitee的https克隆不需要密码:
    shell 复制代码
    git config --global credential.helper store
    1. 全局设置记住密码,永久存储到磁盘文件
  2. ssh克隆(Github和Gitee同理)

    1. 验证 SSH 连接

      shell 复制代码
      ssh -T git@github.com
      • 如果看到类似Hi username! You've successfully authenticated...的欢迎信息,说明 SSH 密钥设置正确。那么问题可能出在仓库权限本身(请确保仓库存在且您有访问权)。
      • 如果看到Permission denied (publickey)或其他错误,则需要进行以下设置。
    2. 检查是否有现有的SSH密钥

      shell 复制代码
      ls -al ~/.ssh

      看看有没有类似以下文件:

      id_rsaid_rsa.pub(RSA密钥)

      id_ed25519id_ed25519.pub(Ed25519密钥,推荐)

      id_ecdsaid_ecdsa.pub(ECDSA密钥)

      1. 如果尚未生成

        则生成 SSH 密钥:在终端运行以下命令(将 your_email@example.com替换为您的 GitHub 注册邮箱),然后一路按回车接受默认设置

        shell 复制代码
        ssh-keygen -t ed25519 -C your_email@example.com

        这会在~/.ssh/目录下生成一对密钥:id_ed25519(私钥,需保密)和 id_ed25519.pub(公钥)

      2. 如果现在有密钥

        1. 检查现有密钥是否被正确使用

          shell 复制代码
          cat ~/.ssh/config

          如果这个文件不存在或没有指定密钥,让我们为GitHub指定使用id_rsa密钥。

        2. 添加密钥到ssh-agent

        3. 启动ssh-agent

          shell 复制代码
          eval "$(ssh-agent -s)"
        4. 将您的id_rsa密钥添加到ssh-agent

          shell 复制代码
          ssh-add ~/.ssh/id_rsa
        5. 检查公钥是否已添加到GitHub

          shell 复制代码
          cat ~/.ssh/id_rsa.pub
        6. 将 SSH 公钥添加到 GitHub

          复制公钥内容

          shell 复制代码
          cat ~/.ssh/id_ed25519.pub
      3. 登录 GitHub,点击右上角头像 -- Settings -- 左侧边栏 SSH and GPG keys -- 绿色按钮 New SSH key

      4. Title中为密钥起个名字(如"My Laptop"),然后将刚才复制的整个公钥内容粘贴到Key文本框中,最后点击Add SSH key

      5. 验证 SSH 连接

        shell 复制代码
        ssh -T git@github.com
  3. ssh克隆卡住(Linux)

    shell 复制代码
    vim ~/.ssh/config

    在最后一行添加

    shell 复制代码
    Host github.com
    	HostName github.com
    	User git
    	ProxyCommand nc -X connect -x 127.0.0.1:7890 %h %p

相关推荐
东京老树根2 小时前
SAP学习笔记 - BTP SAP Build12 - SAP Build Content Package
笔记·学习
北京海得康2 小时前
阿那格雷临床疗效与起效时间【海得康】
笔记
羊群智妍3 小时前
2026年AI搜索优化工具推荐:9款免费GEO监测工具实测
笔记
智者知已应修善业3 小时前
【51单片机不用数组动态数码管显示字符和LED流水灯】2023-10-3
c++·经验分享·笔记·算法·51单片机
二哈赛车手4 小时前
新人笔记---ES和kibana启动问题以及一些常用的linux的错误排查方法,以及ES,数据库泄密解决方案[超详细]
java·linux·数据库·spring boot·笔记·elasticsearch
幸福巡礼5 小时前
【LangChain 1.2 实战(一)】 概述
笔记·学习·langchain
观无5 小时前
MAUI笔记
笔记
Hello_Embed5 小时前
Windows 安装 Claude Code 并接入 模型
windows·笔记·ai编程
大Mod_abfun6 小时前
数字媒体艺术概论(课堂作业/笔记)
笔记·媒体