【杂记二】git, github, vscode等

news/2025/3/20 11:52:05/

一、前言

暂时空着...

二、git

2.1 可能的疑问

1. VSCode 项目名和 GitHub 仓库名是否需要一致?

不需要一致。 VSCode 项目名(也就是你本地的文件夹名字)和 GitHub 仓库名可以不一样。 Git 是一个分布式版本控制系统,它主要关注的是你本地仓库与远程仓库之间的连接和同步,而不是文件夹的名字。

  • 没有直接影响。 你可以正常地将本地仓库连接到任何远程 GitHub 仓库,无论名字是否相同。

  • 建议保持一致以方便管理。 为了方便自己和其他协作者理解项目,建议尽量让本地项目文件夹名和 GitHub 仓库名保持一致。 这样可以更容易地从文件夹名字就能判断出对应的 GitHub 仓库,尤其是在你同时管理多个项目的时候。

2. origin 是什么?可以写成其他的吗?

  • rigin 是远程仓库的别名 (alias)。 当你运行 git remote add origin <repository_url> 的时候,origin 就代表了你指定的远程仓库的 URL。

  • origin 可以写成其他的名字。 你可以选择任何你喜欢的名字作为远程仓库的别名。 比如,你可以将远程仓库命名为 githubupstreamremote 等等。

  • 如何更改远程仓库的别名?

    • 重命名已存在的远程仓库: git remote rename origin <new_name>

      • 例如: git remote rename origin github

    • 添加远程仓库时使用其他名字: git remote add <new_name> <repository_url>

      • 例如: git remote add github https://github.com/your_username/your_repo.git

  • origin 的约定俗成:

    • 虽然你可以随意命名,但是 origin 已经成为一种约定俗成的做法。 大多数开发者都习惯使用 origin 来代表主要的远程仓库,特别是你 fork 别人的项目后,会再添加一个 upstream 指向原始仓库,方便同步更新。

三、Github

3.1 初始化 Git 仓库

  • 打开 VSCode 的终端 (View -> Terminal)。

  • 运行 git init 命令。 这将在你的项目目录中创建一个新的 Git 仓库。

3.2 将本地仓库连接到 GitHub 仓库

  • 复制你刚在 GitHub 上创建的仓库的 HTTPS 或 SSH URL。 你可以在 GitHub 仓库页面的 "Code" 按钮下找到这个 URL。

  • 在 VSCode 终端中运行 git remote add origin <your_repository_url> 命令,将 <your_repository_url> 替换为你复制的 URL。 例如:

git remote add origin https://github.com/your_username/your_private_repo.git

3.3 将代码上传到 GitHub

1. 添加文件到暂存区
  • 在 VSCode 中创建你的项目文件 (例如:main.py, index.html 等)。

  • 运行 git add . 命令将所有文件添加到暂存区。 或者,你可以使用 VSCode 的 "Source Control" 视图中的 "+" 按钮来添加单个文件。

2. 提交更改

运行 git commit -m "Initial commit" 命令提交你的更改。 将 "Initial commit" 替换为描述本次提交的更有意义的消息。

3. 查询本地分支的名字

git brach

如果是* master,

git branch -m master main

变成 *main

4. 推送到 GitHub

运行 git push -u origin main 命令将你的本地仓库推送到 GitHub 仓库。

  • -u 选项设置 upstream tracking,这样以后你只需要运行 git push 就可以推送更改了。

  • origin 是你远程仓库的名称(通常是 "origin",你之前使用 git remote add 命令设置的)。

  • main 是你想要推送到的分支名称(通常是 "main" 或 "master")。

  • 你可能会被要求输入你的 GitHub 用户名和密码

该错误表示远程分支 main 具有本地分支没有的提交。您有两个主要选项:

首先合并远程更改:

远程仓库已经存在 main 分支,但是你的本地仓库和远程仓库的代码不同步。 错误提示 Updates were rejected because the remote contains work that you do not have locally. 意味着远程仓库 main 分支上有一些你本地仓库没有的提交。

5. 远程更改拉取到本地分支中,必要时解决任何冲突,然后推送:
git pull origin main
git push -u origin main

git pull origin main --allow-unrelated-histories

强制推送(如果您打算覆盖远程分支):

如果你确定你的本地分支应该完全替换远程分支(注意:这将丢弃远程提交),你可以强制推送:

git push -u origin main --force

6. 拉取到本地
git clone github_project_repository_url

3.3 git 如何排除一些上传的folder, files

例如, 有个很大的数据集, 有logs 文件,等等, 你不想上传

1. 使用 .gitignore 文件排除文件夹:

.gitignore 文件用于指定 Git 应该忽略的文件和文件夹。 这是排除文件夹的最佳方法,尤其是在你不想将这些文件夹上传到远程仓库时。

步骤:

  1. 在项目根目录中创建 .gitignore 文件:
    如果你的项目根目录中还没有 .gitignore 文件,请创建一个。 你可以使用 VSCode 创建一个新文件,并将其命名为 .gitignore

  2. 编辑 .gitignore 文件:
    .gitignore 文件中,添加你想要忽略的文件夹的名称,每行一个。 例如,如果你想要忽略名为 venvdata 的文件夹,你的 .gitignore 文件应该如下所示:

venv/
data/

  • 请注意,venv/ 末尾的斜杠表示这是一个目录。

  • 你也可以使用通配符来匹配多个文件夹或文件。例如,*.log 会忽略所有以 .log 结尾的文件。

3. VS Code 支持 .gitignore

在 VS Code 中,你可以右键单击要排除的文件或文件夹,然后选择 "Add to .gitignore"。VS Code 将自动将该文件或文件夹添加到 .gitignore 文件中。

4. 保存 .gitignore 文件。

5. 将更改添加到 Git(可选)

git add .gitignore

这会将 .gitignore 文件添加到暂存区,以便 Git 跟踪它。 如果你不想跟踪 .gitignore 文件,可以跳过这一步。

 6. 提交更改:

git commit -m "Add .gitignore file"

7. 清除 Git 缓存 (如果之前已经添加了要忽略的文件):

如果你在添加 .gitignore 文件之前已经将要忽略的文件添加到了 Git 的暂存区,你需要先清除 Git 的缓存,然后再提交更改。运行:

git rm -r --cached .
git add .
git commit -m "Remove cached files and add .gitignore"
  • git rm -r --cached .:从暂存区中删除所有文件,但保留本地文件。

  • git add .:重新添加所有未被忽略的文件到暂存区。

3.4 可能的问题

1. "'origin' does not appear to be a git repository"

“origin”似乎不是 Git 存储库 fatal:无法从远程存储库读取。

检查remote origin 是否存在

git remote -v

如果您没有看到 输出 ,则表示 origin is not set.

添加remote origin

your repository is https://github.com/github-user/user_project.git, add it as origin:

git remote add origin https://github.com/github-user/user.git

验证是否添加成功

git remote -v## 预期输出: 
origin  https://github.com/github-user/user.git (fetch)
origin  https://github.com/github-user/user.git (push)

2. “fatal: refending to merge unrelated histories”

“Updates was rejected because the tip of your current branch is behind its remote counterport” 表示您的本地仓库和远程仓库具有单独的提交历史记录。

允许不相关的历史记录

由于你的本地仓库与远程仓库的历史记录不同,请强制 Git 合并它们:

git pull origin main --allow-unrelated-histories

成功合并后,推送您的更改

git push -u origin main

如果推送再次被拒绝,则强制推送:

git push -u origin main --force


http://www.ppmy.cn/news/1580583.html

相关文章

基于pycatia的CATIA装配体STP批量导出技术解析与优化指南

一、代码功能概述 本文提供的Python脚本通过pycatia库实现了CATIA装配体&#xff08;.CATProduct&#xff09;中第一层级零件/产品的STP格式批量导出功能。核心模块包含&#xff1a; ​CATIA连接初始化&#xff1a;通过COM接口建立与CATIA进程的通信&#xff08;需后台运行CA…

【万字总结】前端全方位性能优化指南(四)——虚拟DOM批处理、文档碎片池、重排规避

前言 在浏览器宇宙中,DOM操作如同「时空裂缝」——一次不当的节点更新可能引发连锁重排,吞噬整条渲染流水线的性能。本章直面这一核心矛盾,以原子级操作合并、节点记忆重组、排版禁忌破解为三重武器,重构DOM更新的物理法则。通过虚拟DOM的批处理引擎将千次操作坍缩为单次提…

C++中的初识输入输出(二)

一、 iostream库与流的概念 C的iostream库是处理输入输出的核心工具&#xff0c;它定义了两个基础类型&#xff1a; istream&#xff1a;表示输入流&#xff0c;用于从设备读取数据。ostream&#xff1a;表示输出流&#xff0c;用于向设备写入数据。 所谓“流”&#xff08;…

【css酷炫效果】纯CSS实现球形阴影效果

【css酷炫效果】纯CSS实现球形阴影效果 缘创作背景html结构css样式完整代码基础版进阶版(动态版) 效果图 想直接拿走的老板&#xff0c;链接放在这里&#xff1a;上传后更新 缘 创作随缘&#xff0c;不定时更新。 创作背景 刚看到csdn出活动了&#xff0c;赶时间&#xff0…

RabbitMQ可靠性进制

文章目录 1.生产者可靠性生产者重连生产者确认小结 2. MQ的可靠性数据持久化LazyQueue小结 3. 消费者的可靠性消费者确认机制消费者失败处理方案业务幂等性唯一消息ID业务判断 兜底方案 1.生产者可靠性 生产者重连 在某些场景下由于网络波动&#xff0c;可能就会出现客户端连…

SQL语言的散点图

SQL语言的散点图 引言 在数据科学和数据分析的领域中&#xff0c;数据可视化是一项重要的技能。有效的数据可视化可以帮助我们理解复杂的数据集&#xff0c;发现数据中的潜在规律&#xff0c;进而支持决策制定。散点图作为一种基本而有效的数据可视化形式&#xff0c;广泛应用…

群体智能优化算法-牛顿-拉夫逊优化算法(Newton-Raphson-Based Optimizer, NRBO,含Matlab源代码)

摘要&#xff08;Abstract&#xff09; 牛顿-拉夫逊优化算法&#xff08;Newton-Raphson-Based Optimizer, NRBO&#xff09;是一种新型群体智能优化算法&#xff0c;受牛顿-拉夫逊方法求解非线性方程的启发。NRBO 结合牛顿-拉夫逊搜索规则&#xff08;Newton-Raphson Search …

python函数的多种参数使用形式

目录 1. 位置参数&#xff08;Positional Arguments&#xff09; 2. 关键字参数&#xff08;Keyword Arguments&#xff09; 3. 默认参数&#xff08;Default Arguments&#xff09; 4. 可变参数&#xff08;Variable Positional Arguments&#xff09; 5. 关键字可变参数&…