基于 git 的协作流程指导及常用command

Leawsic 发布于 2026-09-26 11 次阅读


这是贡献代码的标准流程。

  • 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”。

PR 提交后,你的贡献之旅并没有结束。

  1. 代码审查 (Code Review):项目维护者或其他贡献者会审查你的代码,并可能提出修改意见。
  2. 响应修改:根据反馈,在你的本地功能分支上继续修改、提交,并再次推送到你的远程分支。PR 会自动更新。# 在本地功能分支上修改后 git add . / git commit -m "fix: 根据review意见修改了xxx" / git push origin feature/你的功能描述
  3. 合并 (Merge):当维护者对你的代码满意后,他们会将其合并到主项目中。
  4. 同步更新: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
江畔何人初见月?江月何年初照人?灯火葳蕤处……
最后更新于 2026-09-26