【杂记二】git, github, vscode等

发布于:2025-03-23 ⋅ 阅读:(24) ⋅ 点赞:(0)

一、前言

暂时空着...

二、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


网站公告

今日签到

点亮在社区的每一天
去签到