Git基础使用和PR贡献

Git 是一种分布式版本控制系统,主要用于管理和跟踪代码等文件的变更,它能够帮助开发者在多人协作开发时记录每一次修改、回退到历史版本、合并不同的更改,并且支持分支开发,方便团队协作和项目管理

简单来说,Git 可以让你高效、安全地管理项目文件的历史和协作过程,是现代软件开发中不可或缺的工具


参考资料
Pro Git book
如何在 Github 上规范的提交 PR(图文详解) - 知乎



本地 Git 基础使用流程

  1. 安装 Git

    • Windows/macOS:官网下载
    • Linux:sudo apt-get install git
  2. 初始化本地仓库

    git init
    

对于 Windows 电脑,可以直接在“文件资源管理器”中的地址栏输入 cmd 打开命令窗口

在这里插入图片描述

  1. 配置用户名和邮箱
    git config --global user.name "你的昵称"
    git config --global user.email "你的邮箱"
    

--global 参数代表“全局配置”,也就是对当前设备上所有仓库统一配置
具体来说:
使用 --global 配置后,所有在本机操作的 Git 仓库,都会默认使用这个用户信息
如果你没有在某个仓库里单独设置(用 --local),那仓库会继承全局配置

如果你想为某个仓库设置不同的用户名或邮箱,可以在该仓库目录下使用不带 --global 的命令(或加 --local),比如:

git config user.name "另一个昵称"
git config user.email "另一个邮箱"

这样只影响当前仓库

在这里插入图片描述

  1. 添加文件到暂存区
    git add 文件名   # 添加指定文件
    git add .        # 添加所有文件
    

在这里插入图片描述

这些提示说明 Git 检测到你的换行符和当前系统默认格式不同,操作时会做转换,有特殊需求的话可以进行更改

  1. 提交到本地仓库

    git commit -m "提交说明"
    
  2. 常用命令

    git status    # 查看状态
    git log       # 查看日志
    git diff      # 查看变化
    git branch    # 查看分支
    

分支与主干逻辑

  • 主干(main/master)通常是项目的主分支,代表了稳定和可随时发布的代码
  • 分支(branch)开发新功能、修复 Bug 时从主干拉出,开发完成后再合并回主干

分支操作

切换分支

git checkout 分支名
# 或
git switch 分支名

创建并切换新分支

git checkout -b 新分支名
# 或
git switch -c 新分支名

合并分支

git checkout main
git merge 分支名

撤销更改

撤销未暂存的更改
丢弃你对这个文件的修改

git checkout -- 文件名
# 或
git restore 文件名

撤销已暂存但未提交的更改
把已经 git add 到暂存区的内容撤回到未暂存状态(unstaged),不会丢失你的本地修改

git reset HEAD 文件名

撤销最近一次提交

git reset --soft HEAD~1   # 保留更改
git reset --hard HEAD~1   # 丢弃更改

--soft 撤销上一次提交,但保留所有更改在暂存区(staged)
--hard 撤销上一次提交并且丢弃所有本地更改(工作区和暂存区都恢复到上一次提交前的状态)

当存在父提交时才有效”,因为 HEAD~1 指向父提交,对于第一个 commit,它没有父提交,所以命令会报错

gitignore

.gitignore 是一个文本文件,用于告诉 Git 哪些文件或文件夹不需要被版本控制,即不需要被提交到仓库
只要你在项目根目录(或子目录)下创建一个 .gitignore 文件,并写入想要忽略的文件、文件夹或通配规则,Git 就会自动跳过这些内容

# 忽略编译生成的文件
build

如果你先提交了一些文件,再添加 .gitignore,那些已经被追踪的文件不会自动变成“忽略”,需要手动用 git rm --cached 命令把它们从暂存区移除

你可以一次性移除多个文件:

git rm --cached file1.txt file2.txt

或者整个目录:

git rm --cached -r directory_name

在这里插入图片描述

这里换到了 Git Bash 进行操作

常见问题

分支切换与内容变动问题

如果分支有未提交更改,切换分支时这些更改会跟随,导致切换后代码内容没变
解决方法:

  • 提交更改
  • 暂存更改(git stash
  • 丢弃更改(git restore .git reset --hard

如果工作区有未提交的更改,切换分支时这些更改会被带到目标分支
如果这些更改与目标分支不冲突,Git 会允许切换;如果存在冲突,Git 会阻止切换并提示你先处理这些更改

如果主干和分支内容本来就一样,切换分支后代码自然不会变
使用 git branch 查看当前分支,git status 查看工作区状态

如何保存分支更改并切换主干

未提交更改:

git stash
git checkout main

已提交更改:

git checkout main

在 VSCode 中可以用终端输入上述命令,也可以用源代码管理面板的图形化按钮操作

常见错误及解决

错误示例

git add .
# warning: LF will be replaced by CRLF ...
git commit "test"
# 错误:缺少 -m 参数

正确提交方式:

git commit -m "test"

若提示“no changes added to commit”,说明没有内容被 add 进暂存区,应使用 git status 检查文件状态,然后重新 git add 文件名 再提交

其他注意事项

  • git reset --hard 会丢弃所有未提交的更改,使用前务必谨慎
  • 所有 git 命令无论在 CMD、PowerShell 还是 VSCode 终端中都可以通用
  • VSCode 的 Git 面板可以辅助完成大部分 Git 操作

如遇特殊情况(如冲突、还原部分文件、远程操作等),建议先用 git status 查看当前状态,再决定操作步骤

Git 上传到远程仓库笔记

Workfolw

  1. 初始化本地仓库
    如果还没有本地仓库,先初始化
git init
  1. 添加文件到暂存区
    将所有文件添加到暂存区
git add .

或者只添加某个文件

git add 文件名
  1. 提交到本地仓库
    提交更改,并添加提交说明
git commit -m "你的提交说明"
  1. 关联远程仓库
    只需要关联一次,之后就不用再操作
git remote add origin 仓库地址

例如

git remote add origin https://github.com/用户名/仓库名.git
  1. 推送到远程仓库
    第一次推送时(以 master 为例)
git push -u origin master

如果你的主分支是 main

git push -u origin main

后续只需用:

git push

在这里插入图片描述

此时会弹出窗口提示你登录 github,注意一下自己的网络环境(比如我这里就失败了一次)

常见问题

  • 如果远程仓库已有内容,建议先拉取并合并:
    git pull origin master
    
  • 如果遇到推送失败,检查是否有权限,或分支名称是否正确

总结
常用命令顺序:git initgit addgit commitgit remote add origingit push

通过 PR 贡献项目

  1. 在项目主页 Fork 一个项目分支
    项目主页,点击 Fork 按钮,创建一个新的派生项目
  2. 将项目 Clone 到本地
  3. 创建分支,添加/修改内容并合并
  4. 将内容 push 到远程仓库
  5. 在远程仓库中发起 PR 合并请求
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值