type
slug
status
summary
icon
category
date
tags
password
 

Git安装

notion image
将vscode变成git默认的编辑器
将默认分支的名字改为main
notion image
 
 
 

Git配置

GitHub远程仓库(将本地的代码存档在远程的服务器上)
Git用来管理本地的代码一个代码仓库
Git每一次操作就是创建一个代码存档,给存档命名,让存档之间有前后依赖关系
存档 vs 仓库 vs 项目
在Git当中:这三个都是一个东西
notion image
push:上传到GitHub上
Initialize Repository:初始化仓库(创建一个游戏存档之后才能保存游戏进度才能持续的更新进度)
notion image
commit:提交,git保存代码需要手动的写这个存档(提交)的名字eg:first commit(游戏存档的保存,游戏里会自动写入存档保存的时间和进度)
notion image
是/永远/从不—>always
git stage
notion image
提交之后,下面的source control graph,可以看到提交的记录,以及提交之间的关系
修改代码后,可以看到侧边栏的Source Control,挂起的更改代表我们还没有保存和提交
notion image
notion image
再次提交和保存需要手动命名!!!
notion image
可以看见下面多了一个存档
notion image
存档之间存在连线,意为:这个存档是基于上一个存档
点击存档后,这些是不能写
notion image
红色:上一个存档(原存档长什么样子)
绿色:当前存档改过之后是什么样子(+号)
 
 
 

本地发送给Github

notion image
notion image
希望当前的代码库私有(邀请后才可进入未邀请者也无法搜素)还是公开(无需密码所有人都可以看见)
注意要设置代理
notion image
notion image
notion image
main:代表当前项目所处的位置
origin:远程仓库它当前所处的位置
需要区分这两个位置的原因:
notion image
notion image
此时add main.js还在本地的仓库中,在远程中还没有这个main.js的
此时Github中进度它是落后于我们本地的
如果需要远程的进度和我们本地的进度保持一致的话,需要进行推送(push)
notion image
notion image
 
origin/main:远程仓库对应的分支的名字
什么是分支?
在git中commit(提交),也就相当于一个游戏存档
即把本地存储的一个游戏存档推送到远程仓库中
notion image
此时进度保持一致
notion image
仓库项目是一个意思,仓库下即为我们从本地上传的文档
notion image
notion image
main.js index_html 本地的命名
second save add main.js 则是我们手动命名的名字
并且展示文档是多久上传上来的(而不是在本地服务器被保存的时间)
本地服务器上看本地时间:
notion image
notion image
注意:该命令使用一定要在我们想要查看的这个存档的目录下
eg:up主想要查看的目录叫做git-demo
notion image
四次提交:first commit second commit third commit add main.js
作者名,作者邮箱
黄色为每次提交生成的唯一标识(存档的唯一ID),这个标识可以帮助我们删除/回到相应的存档
删除/回到相应的存档:
 
💡
  • 总结:先创建本地的存档叫做git_demo,直接把本地的存档推送到远程服务器。远程服务器中的名字和我们本地这个项目的名字是一样的。
  • 如果想修改远程服务器上项目的名字,settings
  • 如果我们想先创建远程项目的名字,然后再把我们本地的存档上传到远程的项目里
notion image
notion image
create repository
notion image
 
 
 

Github新建仓库上传本地文件

新建一个仓库:Hi3861
在本地:D:\Git\Projects中新建项目文件夹后拉入vscode中展开
notion image
notion image
 
 
 
 

遇到的问题

换行符LF和CRLF

当我推送Hi3861的项目的时候出现这样的报错
notion image
notion image
这个警告信息是关于 Git 在处理文件换行符时的行为。具体来说,它表示在 .gitignore 文件中,Git 发现了 Unix 风格的换行符(LF,即 Line Feed),但在 Windows 系统中,Git 会将其转换为 Windows 风格的换行符(CRLF,即 Carriage Return + Line Feed)。
  • LF(Line Feed):在 Unix/Linux/macOS 系统中,换行符用 \n 表示。
  • CRLF(Carriage Return + Line Feed):在 Windows 系统中,换行符用 \r\n 表示。
  • Git 有一个配置项 core.autocrlf,用于控制换行符的自动转换行为:
    • 如果你在 Windows 系统中设置了 core.autocrlf=true,Git 会自动将文件中的 LF 转换为 CRLF。
    • 如果你在 Unix/Linux/macOS 系统中设置了 core.autocrlf=input,Git 会将 CRLF 转换为 LF。
 
💡
解决方法:目前是使用的禁用自动换行符转换
💡
一些基本的git命令
 
 

Git嵌套仓库

notion image
💡
这个报错是 Git 在警告你试图将一个嵌套的 Git 仓库添加到另一个 Git 仓库中。具体来说,你在当前项目中有一个子目录(在这里是 Hi3861),它本身已经是一个独立的 Git 仓库(因为它包含自己的 .git 文件夹)。当你尝试将这个子目录添加到父项目的 Git 仓库时,Git 会发出这个警告。
Git 不支持嵌套的仓库结构,因为每个 .git 文件夹代表一个独立的仓库。如果你将一个已经包含 .git 文件夹的目录添加到另一个仓库中,Git 会认为这是一个独立的仓库,而不是父仓库的一部分。这可能导致版本控制的混乱。
your-project/ ├── .git/ # 父仓库的 .git 文件夹 ├── file1.txt ├── file2.txt └── Hi3861/
├── .git/ # 子目录 Hi3861 的 .git 文件夹 ├── file3.txt └── file4.txt
解决方案一:删除子目录的 .git 文件夹
 
 
 
 

解决文件名过长

notion image
💡
这个错误提示表明 Git 在尝试访问或操作一个文件时,文件名过长,超出了系统限制。在 Windows 系统上,文件路径长度通常有一个最大限制(默认是 260 个字符)。如果你的项目文件路径超过了这个限制,Git 会报这个错误。
解决方案:使用 Git 的 core.longpaths 配置启用长路径支持
 

URL是什么?

URL是“统一资源定位符”(Uniform Resource Locator)的缩写。它是一种用于标识互联网上资源位置的字符串,简单来说,就是互联网上某个资源的地址。
URL的组成部分
一个典型的URL由以下几个部分组成:
  • 协议:指明了访问资源所使用的协议,例如http(超文本传输协议)、https(安全的超文本传输协议)、ftp(文件传输协议)等。
  • 域名:标识了资源所在的服务器地址,例如github.com
  • 路径:指明了服务器上具体的资源位置,例如username/repository.git
示例
以GitHub仓库的URL为例:
  • 协议https,表示使用安全的超文本传输协议。
  • 域名github.com,表示资源托管在GitHub服务器上。
  • 路径username/repository.git,表示用户名为username的用户的repository仓库。
在Git中的使用
  • 克隆仓库
  • 添加远程仓库
  • 推送代码到远程仓库
 

命令行推送失败:无法连接到Github

notion image
解决方法一:使用图形化推送页面
解决方法二:
ping github.com 发现可以连接
出现问题在防火墙
关闭防火墙,便可以推送成功
notion image
 
notion image
解决方案四:配置代理服务器
查看是否配置代理:
如果输出eg:http://192.168.1.100:8080,这表明 Git 已经配置了代理服务器,地址是 192.168.1.100,端口是 8080。无输出则未配置
配置代理
notion image
notion image
 

当前为悬空分支(未在任何一个分支上)

如果输出类似于:HEAD detached at <commit-hash>那么你确实处于 detached HEAD 状态。

创建一个新的分支

git checkout -b <new-branch-name> 将将 <new-branch-name> 替换为你想要的分支名称,比如 new-featuremain
 

如果分支存在:

方法 1:将更改合并到现有的 main 分支
切换到 main 分支:git checkout main
将悬空分支的更改合并到 main 分支:git merge HEAD这里HEAD 指向你当前的悬空分支。
推送更改到 GitHub:git push origin main
方法 2:创建一个新的分支来保存更改
创建一个新分支:git checkout -b <new-branch-name><new-branch-name> 替换为你想要的分支名称,比如 new-feature
推送新分支到 GitHub:git push -u origin <new-branch-name>
 

更改链接仓库

git remote -v
notion image
修改远程仓库
git remote set-url origin <new-url>
验证
notion image
推送更改到新的远程仓库
git push origin main
 

origin是什么

origin 是一个默认的远程仓库名称。它是一个别名,用来标识一个远程仓库的地址。简单来说,origin 是你本地仓库与远程仓库之间的桥梁。
 
origin 的作用
1.远程仓库的别名origin 是一个简短的名称,用来代替远程仓库的完整 URL。例如,如果你的远程仓库 URL 是 https://github.com/SparkleYuyu/Hi3861.git,Git 会用 origin 来表示这个 URL。
2.方便操作:使用 origin 可以简化命令,比如 git pull origin main 比直接输入完整 URL 更方便。
 
origin 的默认行为
当你克隆一个远程仓库时,Git 会自动将远程仓库的 URL 配置为 origin。例如:
克隆完成后,Git 会自动配置 origin 为远程仓库的 URL。
 

克隆项目到本地

Q:我们是在一个GitHub仓库的成员,我是组员,我需要将组长上传到github上面的代码到我的本地进行修改后又可以通过git上传更新到GitHub这个仓库里,我们用的都是windows,请问我该怎么做,我是git小白
💡
要将组长上传到GitHub仓库的代码同步到你的本地进行修改,并将修改后的代码更新到GitHub仓库,你可以按照以下步骤操作:

一、克隆仓库到本地

  1. 打开GitHub仓库页面,在页面右上角点击“Code”按钮,然后点击“Copy to clipboard”复制仓库的克隆地址。
notion image
2.打开Git Bash,切换到你想要存放代码的本地目录,然后执行以下命令来克隆仓库: 例如: 这会将仓库中的代码复制到你的本地目录。

二、修改代码并提交到本地仓库

  1. 进入仓库目录: 在Git Bash中,使用cd命令切换到你克隆下来的仓库目录。例如,如果仓库克隆到D:\projects\myrepo,则输入:
    1. 修改代码
        • 你可以使用任何文本编辑器(如VS Code、Notepad++等)来修改代码。
        • 修改完成后,回到Git Bash,输入以下命令查看状态:
    1. 添加修改到暂存区
        • 如果只想添加某个特定的文件,使用:
        • 如果想添加所有修改的文件,使用:
    1. 提交修改到本地仓库
        • 提交时需要填写提交说明,这可以通过以下命令完成:

    三、将本地修改推送到GitHub仓库

    1. 推送修改
        • 将本地仓库的修改推送到GitHub远程仓库,使用以下命令:
        这里的main是默认的分支名称,如果你的仓库使用的是master或其他分支名称,请替换为相应的名称。origin是默认的远程仓库的名称。
         
        可以将 origin main 设置为默认路径,需要推送时候就直接git push
        这个命令是将本地的main分支推送到远程仓库的main分支,并建立关联
        如果我需要更改本地分支所连接的远程仓库和远程仓库的分支
        输出表示:
        • 本地的main分支已经设置为追踪远程仓库的origin/main分支,远程仓库已经是最新的,没有新的提交需要推送
        • 尚且有更改未暂存,具体是BUILD.gn
        • 提示需要使用git add 将更改添加到暂存区/git restore丢弃目录中的更改
        • 更改没有被添加到提交中,建议使用git commit -a
        • git commit:只提交暂存区中的更改。
        • git commit -a:提交所有已跟踪文件的更改,无需先暂存。
        💡
        git add <文件名> /git add . git commit -m "提交信息" git push
        完整的命令行推送如下:
        notion image
    1. 处理可能的冲突
        • 如果在推送过程中出现冲突(即其他人也修改了相同的代码部分),Git会提示你解决冲突。
        • 解决冲突后,需要再次添加解决后的文件并提交,然后重新推送。
    1. 验证推送结果
        • 推送完成后,你可以通过以下命令查看推送历史是否成功:

      四、(可选)使用GitHub Desktop图形化工具

      如果你不习惯使用命令行,也可以使用GitHub Desktop图形化工具:
      1. 下载并安装 GitHub Desktop
      1. 打开GitHub Desktop,登录你的GitHub账号。
      1. 在GitHub Desktop中,点击“Clone a repository”,然后粘贴仓库的克隆地址,选择本地存放路径后点击“Clone”。
      1. 修改代码后,在GitHub Desktop中会自动检测到修改的文件,你可以选择要提交的文件,填写提交说明,然后点击“Commit to main”。
      1. 最后,点击“Push origin”将修改推送到GitHub仓库。
      通过以上步骤,你就可以将组长的代码同步到本地进行修改,并将修改后的代码更新到GitHub仓库了。
      💡
      git push origin main
      • 查看远程仓库
      notion image
      这个命令会列出所有配置的远程仓库及其对应的URL。输出结果通常会显示远程仓库的名称和它们的URL。图上的origin就是远程仓库的名称。
      • 更改远程仓库的名称
      • 添加新的远程仓库
      notion image
       

      拉取以前版本

      查看提交历史

      notion image
      notion image

      回退到指定的版本

      回退之后发现有问题,可以随时恢复到最新的版本

      报错:当前工作目录中有未提交的更改

      notion image
      Idea1:提交更改
      Idea2:暂存更改
      切换到目标版本之后,使用下面命令恢复暂存更改
      Idea3:放弃当前更改并切换到目标版本
      Idea4:创建新分支
      回退到以前版本基础开发,建议创建一个新的分支
       

      接收他人上传到github上的更改

      • 从远程仓库拉取最新的代码并自动合并到组员的本地分支。
        • 如果组员的本地仓库已经克隆了你的仓库,并且希望获取最新的更改
      • 希望更细致地控制更新过程
        • 从远程仓库获取最新的更改,但不会自动合并。
        • 将远程分支的更改合并到组员的当前分支。
       
       
      四轴飞行器Hi3861 & 服创
      Loading...
      🐟🐟
      🐟🐟
      在坚冰还盖着北海的时候,我看到了怒放的梅花
      最新发布
      四轴飞行器
      2025-4-16
      Notion使用小指南喵~
      2025-4-16
      Hi3861 & 服创
      2025-4-16
      Git
      2025-4-16
      嵌入式操作系统
      2025-3-28
      C2驾驶证考试
      2025-3-13
      公告
      🎉NotionNext 3.15已上线🎉
      -- 感谢您的支持 ---
      👏欢迎更新体验👏