一、前言
暂时空着...
二、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
可以写成其他的名字。 你可以选择任何你喜欢的名字作为远程仓库的别名。 比如,你可以将远程仓库命名为github
、upstream
、remote
等等。 -
如何更改远程仓库的别名?
-
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 应该忽略的文件和文件夹。 这是排除文件夹的最佳方法,尤其是在你不想将这些文件夹上传到远程仓库时。
步骤:
-
在项目根目录中创建
.gitignore
文件:
如果你的项目根目录中还没有.gitignore
文件,请创建一个。 你可以使用 VSCode 创建一个新文件,并将其命名为.gitignore
。 -
编辑
.gitignore
文件:
在.gitignore
文件中,添加你想要忽略的文件夹的名称,每行一个。 例如,如果你想要忽略名为venv
和data
的文件夹,你的.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"
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