方法一:本地初始化,然后链接到远程仓库(推荐)
这种方法更直接,尤其适用于项目已经在本地,但还没有被Git管理的情况。你的项目似乎就是这种状态。
步骤如下:
1.在Git服务器上创建空仓库(和你之前做的一样):
在你的GitLab、Gitee、GitHub等平台上创建一个新的、完全空白的仓库。记住仓库的URL(https://... 或 git@...)。
2.在本地项目根目录初始化Git:
打开终端(命令行),进入到你的本地项目根目录。
运行以下命令来初始化一个本地Git仓库:
git init
3.将所有文件加入暂存区:
git add .
# 或者更精确的添加方式
# git add --all
4.进行第一次提交:
这次提交将在本地生成你的第一次版本记录。
git commit -m "Initial commit"
5.将本地仓库链接到远程服务器:
这一步是关键,它告诉你的本地仓库“你的远程家在哪里”。origin是远程仓库的默认别名,可以自定义。
git remote add origin <你的远程仓库URL>
# 例如:
# git remote add origin https://gitee.com/your_username/your_project.git
# 或者使用SSH地址(推荐):
# git remote add origin git@gitee.com:your_username/your_project.git
6.推送代码到远程仓库:
将本地的 main 或 master 分支(取决于你的Git版本默认配置)推送到远程仓库,并建立起追踪关系。
git push -u origin main
# 如果你的默认分支是 master,则使用:
# git push -u origin master
-u (或 --set-upstream) 参数非常重要,它会在推送的同时,设置本地分支与远程分支的关联。这样以后直接使用 git push 或 git pull 就可以了,无需再指定分支。
在Sourcetree中如何操作:
虽然命令行非常清晰,但你也可以完全在Sourcetree中完成上述步骤:
- 在Sourcetree中,点击 + -> 创建本地仓库,选择你的项目根目录。
- Sourcetree会自动检测到所有未暂存的文件。全选它们,点击 暂存所有。
- 在底部的输入框填写提交信息(如 "Initial commit"),点击 提交。
- 提交成功后,点击顶部工具栏的 设置 (或齿轮图标) -> 仓库设置 -> 远程仓库 -> 添加。
- 远程名称输入 origin,URL/路径输入你的远程仓库地址,点击 确定。
- 最后,点击顶部工具栏的 推送 按钮,勾选要推送的分支(如 main),确保远程仓库是 origin,分支名也保持一致,勾选 “推送后设置上游分支” 的选项(相当于 -u 参数),然后点击 推送。
方法二:克隆远程空库,然后直接往里加文件
这种方法和你原来的方法很像,但有一点点优化,不需要“拷贝”这个动作。
1.在Git服务器上创建空仓库。
2.克隆这个空仓库到本地另一个文件夹:
git clone <你的远程仓库URL> <本地文件夹名>
这会创建一个包含 .git 文件夹的空项目目录。
3.将你的项目文件复制到这个新克隆的文件夹里。
注意:复制时,确保复制了所有项目文件,但不要复制和覆盖原来的 .git 文件夹!这个文件夹是版本控制的核心,必须保留克隆下来的那个。
4.在这个克隆下来的文件夹里进行 add, commit, push。
git add .
git commit -m "Initial commit"
git push -u origin main
对于你目前的情况(本地已有项目代码),强烈推荐你使用「方法一」。它更符合逻辑,操作更简洁,直接在项目根目录完成所有操作,避免了文件拷贝可能带来的潜在问题(如忘记拷贝隐藏文件、覆盖配置文件等)。
以后对于全新的项目,你也可以直接从「方法一」开始:先在本地 git init 开始开发,觉得需要备份或协作时,再去服务器创建仓库并 remote add + push。
希望这个详细的解释能帮助你更好地理解Git工作流!
在 Git 中忽略 node_modules 目录的方法
对于 npm 项目,忽略 node_modules 目录是非常重要的,因为这个目录包含大量第三方依赖,不应该纳入版本控制。下面是几种方法来实现这一目标:
方法一:使用 .gitignore 文件
创建或编辑 .gitignore 文件
在项目根目录下创建或编辑 .gitignore 文件,添加以下内容:
# 忽略 node_modules 目录
node_modules/
# 其他常见需要忽略的文件
.npm
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.DS_Store
.env
.env.local
.env.production
.nyc_output
coverage/
.nyc_output/
.nyc_cache/
如果 node_modules 已被跟踪
如果 node_modules 目录已经被 Git 跟踪(即之前已经提交过),你需要先从 Git 中移除它:
# 从 Git 索引中移除 node_modules(但保留本地文件)
git rm -r --cached node_modules
# 添加 .gitignore 文件
git add .gitignore
# 提交更改
git commit -m "Ignore node_modules directory"
提交更改
git add .gitignore
git commit -m "Add gitignore file"
git push
方法二:使用 Sourcetree 图形界面
在 Sourcetree 中,右键点击 node_modules 文件夹
选择 "忽略"
选择 "忽略以下文件/文件夹" 选项
Sourcetree 会自动创建或更新 .gitignore 文件
提交并推送更改
方法三:全局 Git 忽略配置(可选)
你还可以设置全局的 Git 忽略规则,适用于所有项目:
# 创建全局忽略文件
git config --global core.excludesfile ~/.global_gitignore
# 编辑该文件,添加需要全局忽略的内容
echo "node_modules/" >> ~/.global_gitignore
验证忽略是否生效
# 检查 git status 是否不再显示 node_modules
git status
# 或者使用以下命令检查特定文件/目录是否被忽略
git check-ignore -v node_modules/
注意事项
- 确保 .gitignore 文件位于项目根目录
- 如果团队成员已经拉取了包含 node_modules 的代码,他们也需要执行 git rm -r --cached node_modules 命令
- 每次克隆项目后,需要运行 npm install 来重新生成 node_modules 目录
- 通过以上步骤,你的 node_modules 目录将不会被 Git 跟踪,从而保持仓库的清洁和小巧。