使用Git贡献代码教程
前言
git适用于GitHub、Gitee、GitLab等主流托管平台,它们均使用git作为底层版本控制工具
Git中的三个分区
- Git有三个主要的工作区域:工作区(working directory)、暂存区(staging area)和版本库(repository)。
- 工作区是指您电脑文件系统上用于修改文件的目录。在这里,您可以创建、编辑和删除文件。
- 暂存区是一个中间状态,它充当了您提交更改的缓冲区。在Git中,您必须明确地将文件添加到暂存区,然后才能将其提交到版本库中。这样做的好处是,您可以对每个更改进行精细控制,并确保只提交需要保存的更改。
- 版本库包含Git存储库的所有历史记录和元数据。它是Git存储库的核心组成部分,是由Git自动维护的。
简而言之,工作区是您正在处理的实际文件,而暂存区是下一次提交所需更改的文件列表。它们之间的区别在于,您可以对工作区中的任何文件进行修改,但只有将它们添加到暂存区并将其提交到版本库中,它们才会成为Git跟踪的部分。
1.配置用户信息
在最开始使用git之前,需要先配置git的用户信息:
git config --global user.name "这里输入你的用户名"
git config --global user.email "这里输入你的邮箱"
- 其中,用户名可自定义,其作用是用于标识提交者的身份,不一定与GitHub、Gitee、GitLab等平台的用户名一致
配置完之后,可以看一下配置信息:
git config --global --list
2.克隆项目到本地
在本地新建文件夹(如本地文件夹名称为my_project),接着使用自己fork仓库的地址克隆项目到本地(如项目文件夹名称为project):
git clone 你的fork仓库地址.git
克隆成功之后,变可在本地文件夹my_project中发现有克隆下来的项目文件夹project
3.切换分支
注意,之后的操作都要在项目的文件夹中进行,否则会报错。在本地文件夹my_project中使用命令以进入:
cd project
选择需要将项目上传的分支,如此时想把修改之后的内容上传到feature分支:
git checkout feature
出现如下的提示则说明切换分支成功:
branch 'feature' set up to track 'origin/feature'.
Switched to a new branch 'feature'
注意:切换分支之前记得将之前分支的代码push提交,避免切换分支之后丢失未提交的代码。
4.将文件加入暂存区
使用 git add 命令将新增文件或者更改的文件加入暂存区:
git add 你新增的文件夹路径
检查是否添加成功:
git status
5.将文件加入本地仓库
将暂存区的文件变更到本地仓库:
git commit -m "你的描述信息"
6.检查当前分支是否正确
在最后的推送之前,再检查一下本地的分支及其关联远程分支(将要推送的分支)是否正确:
6.1 查看本地分支
-
列出所有本地分支
执行以下命令显示所有本地分支,当前分支会以*
标记:git branch
示例输出:
* main feature/login dev
说明:
main
是当前分支,feature/login
和dev
是其他本地分支。 -
查看当前分支(快捷方式)
通过git status
或以下命令直接显示当前分支名:git branch --show-current
输出示例:
main
6.2 查看本地分支与远程分支的关联关系
-
显示详细关联信息
使用-vv
参数查看本地分支及其跟踪的远程分支(含提交状态):git branch -vv
示例输出:
* main 5a8c980 [origin/main: ahead 2] Fix login bug develop 963fb22 [origin/develop] Update docs
解读:
-
main
分支跟踪origin/main
,且本地比远程超前2个提交。 -
develop
分支跟踪origin/develop
,状态同步。
-
-
查看特定远程仓库的关联分支
显示指定远程仓库(如origin
)的详细关联配置:git remote show origin
输出示例:
Local branches configured for 'git pull': main merges with remote main develop merges with remote develop Local refs configured for 'git push': main pushes to main (up to date) develop pushes to develop (up to date)
说明:此命令会列出所有本地分支与远程分支的推送/拉取关系
6.3 其他实用命令
-
查看所有分支(含远程)
git branch -a
输出示例:
* main feature/login remotes/origin/main remotes/origin/develop
7.将文件推送到远程
首先拉取远程最新更改,避免冲突
git pull origin feature
-
首次推送分支
若本地feature
分支未关联远程分支,需明确指定远程分支名:git push -u origin feature # -u参数绑定远程分支
-
后续更新推送
若分支已关联,直接推送即可(feature不存在将自动创建一个):git push origin feature # 或简写为git push(已关联时)
8.提交合并请求
推送代码到自己的fork仓库之后,若希望其合并到主仓库,则需要在相关平台上提交merge request,当主仓库的管理人员pr之后即可完成合并。