这是贡献代码的标准流程。
- Fork 项目:在 GitHub 上,点击原项目页面右上角的 “Fork” 按钮。这会在你的 GitHub 账号下创建一个该项目的完整副本。
- Clone 到本地:将你 Fork 的仓库克隆到你的电脑上。
git clone https://github.com/你的用户名/项目名.git - 添加 upstream 远程仓库:为了能随时同步原项目的最新代码,需要将原项目添加为一个名为
upstream的远程仓库。git remote add upstream https://github.com/原作者/项目名.git - 创建功能分支:永远不要直接在
main或master分支上修改代码。应该从最新的主分支创建一个新的、描述性的分支来开发。# 1. 先切换到主分支并同步 upstream 的最新代码 git checkout main / git fetch upstream / git rebase upstream/main # 2. 创建并切换到新分支 git checkout -b feature/你的功能描述 - 开发与提交:在新分支上进行你的代码修改。完成后,编写清晰、规范的提交信息(Commit Message) 并提交。
git add . / git commit -m "feat: 添加了某某功能" # 提交信息应简洁明了提交信息格式:很多项目要求遵循特定格式,如feat: 添加了新功能或fix: 修复了某某 bug。请参考项目的CONTRIBUTING.md。 - 推送到你的 Fork:将本地分支推送到你在 GitHub 上的 Fork 仓库。
git push origin feature/你的功能描述 - 创建 Pull Request (PR):在 GitHub 上你的 Fork 仓库页面,点击 “Compare & pull request” 按钮。
- Base repository:选择原项目及其目标分支(通常是
main)。 - Head repository:选择你的 Fork 仓库和你刚才推送的分支。
- 填写清晰的标题和描述,说明你做了什么、为什么这么做。如果关联了 Issue,可以使用
Fixes #123这样的关键词来自动关闭 Issue。最后点击 “Create pull request”。
- Base repository:选择原项目及其目标分支(通常是
PR 提交后,你的贡献之旅并没有结束。
- 代码审查 (Code Review):项目维护者或其他贡献者会审查你的代码,并可能提出修改意见。
- 响应修改:根据反馈,在你的本地功能分支上继续修改、提交,并再次推送到你的远程分支。PR 会自动更新。
# 在本地功能分支上修改后 git add . / git commit -m "fix: 根据review意见修改了xxx" / git push origin feature/你的功能描述 - 合并 (Merge):当维护者对你的代码满意后,他们会将其合并到主项目中。
- 同步更新:PR 被合并后,为了保持你的 Fork 仓库与上游一致,需要同步更新。
git checkout main / git fetch upstream / git rebase upstream/main / git push origin main
删除本地遗留开发分支
在删除本地 dev 分支之前,务必先切换出 dev 分支。你无法删除当前正在使用的分支。
git checkout main
- 安全删除(PR 已合并,改动已入库):git branch -d dev
- 强制删除(PR 被关闭,改动不打算要了,或
-d报错提示未合并):git branch -D dev
(即删除你在 GitHub/Gitee 上 Fork 仓库里的那个 dev 分支)
git push origin --delete dev
执行后,可以去 GitHub 你的仓库页面刷新一下,dev 分支应该就消失了。
git log主要用法
git log --oneline --graph --decorate --all
参数含义:
--oneline:每个提交只显示一行,简洁。--graph:左侧用 ASCII 字符画出分支分叉、合并的图形。--decorate:显示分支名、标签、HEAD、upstream/main等引用。--all:显示所有分支(包括远程分支)。只看当前分支就去掉--all。
- 看
dev比上游多了哪些提交:git log --oneline upstream/main..dev - 看上游比
dev多了哪些提交:git log --oneline dev..upstream/main - 只看分支结构,忽略细节:git log --oneline --graph --decorate --all --simplify-by-decoration
- 看某个文件的修改历史:git log --oneline --graph --follow -- 文件名
- 显示每次提交改了哪些文件:git log --stat --oneline --graph --decorate --all
git pull --rebase origin [main]
git show
最常用的是 git show:
git show
它会显示这个 commit 的:hash、作者、日期、提交说明,以及相对父提交的具体代码改动 diff。
<commit> 可以写:完整 hash、短 hash、HEAD、HEAD~1、分支名、tag 名等。
常用查看方式
1. 看完整信息 + 代码改动
git show
2. 只看改了哪些文件、增删行数
git show --stat
3. 只看改动文件名
git show --name-only
4. 看文件改动状态,如 A/M/D
git show --name-status
6. 只看某个文件的改动
git show -- path/to/file
注意路径一般按仓库根目录写。
8. 看原始 commit 对象内容
git cat-file -p
会显示 tree、parent、author、committer、提交说明等原始信息。
10. 看这个 commit 在哪些分支/标签里
git branch -a --contains
git tag --contains
想看最详细的提交信息 + 文件统计 + diff:
git show --pretty=fuller --stat --patch
如果输出太长,先用:
git show --stat a1b2c3d
看改了哪些文件,再针对某个文件:
git show a1b2c3d -- src/main.js

Comments NOTHING