type
slug
status
summary
icon
category
date
tags
password
Git安装

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

Git配置
GitHub远程仓库(将本地的代码存档在远程的服务器上)
Git用来管理本地的代码一个代码仓库
Git每一次操作就是创建一个代码存档,给存档命名,让存档之间有前后依赖关系
存档 vs 仓库 vs 项目
在Git当中:这三个都是一个东西

push:上传到GitHub上
Initialize Repository:初始化仓库(创建一个游戏存档之后才能保存游戏进度才能持续的更新进度)

commit:提交,git保存代码需要手动的写这个存档(提交)的名字eg:first commit(游戏存档的保存,游戏里会自动写入存档保存的时间和进度)

是/永远/从不—>always
git stage

提交之后,下面的source control graph,可以看到提交的记录,以及提交之间的关系
修改代码后,可以看到侧边栏的Source Control,挂起的更改代表我们还没有保存和提交


再次提交和保存需要手动命名!!!

可以看见下面多了一个存档

存档之间存在连线,意为:这个存档是基于上一个存档
点击存档后,这些是不能写

红色:上一个存档(原存档长什么样子)
绿色:当前存档改过之后是什么样子(+号)
本地发送给Github


希望当前的代码库私有(邀请后才可进入未邀请者也无法搜素)还是公开(无需密码所有人都可以看见)
注意要设置代理



main:代表当前项目所处的位置
origin:远程仓库它当前所处的位置
需要区分这两个位置的原因:


此时add main.js还在本地的仓库中,在远程中还没有这个main.js的
此时Github中进度它是落后于我们本地的
如果需要远程的进度和我们本地的进度保持一致的话,需要进行推送(push)


origin/main:远程仓库对应的分支的名字
什么是分支?
在git中commit(提交),也就相当于一个游戏存档
即把本地存储的一个游戏存档推送到远程仓库中

此时进度保持一致

仓库项目是一个意思,仓库下即为我们从本地上传的文档


main.js index_html 本地的命名
second save add main.js 则是我们手动命名的名字
并且展示文档是多久上传上来的(而不是在本地服务器被保存的时间)
本地服务器上看本地时间:


注意:该命令使用一定要在我们想要查看的这个存档的目录下
eg:up主想要查看的目录叫做git-demo

四次提交:first commit second commit third commit add main.js
作者名,作者邮箱
黄色为每次提交生成的唯一标识(存档的唯一ID),这个标识可以帮助我们删除/回到相应的存档
删除/回到相应的存档:
- 总结:先创建本地的存档叫做git_demo,直接把本地的存档推送到远程服务器。远程服务器中的名字和我们本地这个项目的名字是一样的。
- 如果想修改远程服务器上项目的名字,settings
- 如果我们想先创建远程项目的名字,然后再把我们本地的存档上传到远程的项目里


create repository

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


遇到的问题
换行符LF和CRLF
当我推送Hi3861的项目的时候出现这样的报错


这个警告信息是关于 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嵌套仓库

这个报错是 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
文件夹解决文件名过长

这个错误提示表明 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

解决方法一:使用图形化推送页面
解决方法二:
先
ping
github.com
发现可以连接出现问题在防火墙
关闭防火墙,便可以推送成功


解决方案四:配置代理服务器
查看是否配置代理:
如果输出eg:http://192.168.1.100:8080,这表明 Git 已经配置了代理服务器,地址是 192.168.1.100,端口是 8080。无输出则未配置
配置代理


当前为悬空分支(未在任何一个分支上)
如果输出类似于:HEAD detached at <commit-hash>那么你确实处于 detached HEAD 状态。
创建一个新的分支
git checkout -b <new-branch-name>
将将 <new-branch-name>
替换为你想要的分支名称,比如 new-feature
或 main
。如果分支存在:
方法 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

修改远程仓库
git remote set-url origin <new-url>
验证

推送更改到新的远程仓库
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仓库,你可以按照以下步骤操作:
一、克隆仓库到本地
- 打开GitHub仓库页面,在页面右上角点击“Code”按钮,然后点击“Copy to clipboard”复制仓库的克隆地址。

2.打开Git Bash,切换到你想要存放代码的本地目录,然后执行以下命令来克隆仓库:
例如:
这会将仓库中的代码复制到你的本地目录。
二、修改代码并提交到本地仓库
- 进入仓库目录: 在Git Bash中,使用cd命令切换到你克隆下来的仓库目录。例如,如果仓库克隆到D:\projects\myrepo,则输入:
- 修改代码:
- 你可以使用任何文本编辑器(如VS Code、Notepad++等)来修改代码。
- 修改完成后,回到Git Bash,输入以下命令查看状态:
- 添加修改到暂存区:
- 如果只想添加某个特定的文件,使用:
- 如果想添加所有修改的文件,使用:
- 提交修改到本地仓库:
- 提交时需要填写提交说明,这可以通过以下命令完成:
三、将本地修改推送到GitHub仓库
- 推送修改:
- 将本地仓库的修改推送到GitHub远程仓库,使用以下命令:
- 本地的main分支已经设置为追踪远程仓库的origin/main分支,远程仓库已经是最新的,没有新的提交需要推送
- 尚且有更改未暂存,具体是BUILD.gn
- 提示需要使用git add 将更改添加到暂存区/git restore丢弃目录中的更改
- 更改没有被添加到提交中,建议使用git commit -a
git commit
:只提交暂存区中的更改。git commit -a
:提交所有已跟踪文件的更改,无需先暂存。
这里的main是默认的分支名称,如果你的仓库使用的是master或其他分支名称,请替换为相应的名称。origin是默认的远程仓库的名称。
可以将 origin main 设置为默认路径,需要推送时候就直接git push
这个命令是将本地的main分支推送到远程仓库的main分支,并建立关联
如果我需要更改本地分支所连接的远程仓库和远程仓库的分支
输出表示:
git add <文件名> /git add .
git commit -m "提交信息"
git push
完整的命令行推送如下:

- 处理可能的冲突:
- 如果在推送过程中出现冲突(即其他人也修改了相同的代码部分),Git会提示你解决冲突。
- 解决冲突后,需要再次添加解决后的文件并提交,然后重新推送。
- 验证推送结果:
- 推送完成后,你可以通过以下命令查看推送历史是否成功:
四、(可选)使用GitHub Desktop图形化工具
如果你不习惯使用命令行,也可以使用GitHub Desktop图形化工具:
- 下载并安装 GitHub Desktop。
- 打开GitHub Desktop,登录你的GitHub账号。
- 在GitHub Desktop中,点击“Clone a repository”,然后粘贴仓库的克隆地址,选择本地存放路径后点击“Clone”。
- 修改代码后,在GitHub Desktop中会自动检测到修改的文件,你可以选择要提交的文件,填写提交说明,然后点击“Commit to main”。
- 最后,点击“Push origin”将修改推送到GitHub仓库。
通过以上步骤,你就可以将组长的代码同步到本地进行修改,并将修改后的代码更新到GitHub仓库了。
git push origin main
- 查看远程仓库

这个命令会列出所有配置的远程仓库及其对应的URL。输出结果通常会显示远程仓库的名称和它们的URL。图上的origin就是远程仓库的名称。
- 更改远程仓库的名称
- 添加新的远程仓库

拉取以前版本
查看提交历史


回退到指定的版本
回退之后发现有问题,可以随时恢复到最新的版本
报错:当前工作目录中有未提交的更改

Idea1:提交更改
Idea2:暂存更改
切换到目标版本之后,使用下面命令恢复暂存更改
Idea3:放弃当前更改并切换到目标版本
Idea4:创建新分支
回退到以前版本基础开发,建议创建一个新的分支
接收他人上传到github上的更改
- 从远程仓库拉取最新的代码并自动合并到组员的本地分支。
- 如果组员的本地仓库已经克隆了你的仓库,并且希望获取最新的更改
- 希望更细致地控制更新过程
- 从远程仓库获取最新的更改,但不会自动合并。
- 将远程分支的更改合并到组员的当前分支。
- 作者:🐟🐟
- 链接:https://www.imyuyu.top//article/Git
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。