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

相关推荐
深海鱼在掘金1 天前
Git 完全指南 —— 第1章:Git 概览与版本控制演进
git
开发者联盟league2 天前
安装pnpm
ssh
闪闪发亮的小星星2 天前
高斯光以及高斯光公式解释
笔记
cqbzcsq2 天前
CellFlow虚拟细胞论文阅读
论文阅读·人工智能·笔记·学习·生物信息
noravinsc2 天前
关于Git Flow
git
2601_961875242 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
蜜獾云2 天前
在Git中配置用户名和密码
git
阿米亚波2 天前
【Windows】QEMU 启动 openEuler aarch64/arm64 架构系统 + 离线软件源
linux·windows·经验分享·笔记·架构·arm
自传.2 天前
尚硅谷 Vibe Coding|第三章(1) Claude Code深度使用与进阶技巧 学习笔记
笔记·学习·尚硅谷·vibecoding
.千余2 天前
【C++】模板进阶全解:非类型参数|全特化|偏特化|分离编译完全指南
开发语言·c++·笔记·学习·其他