Git典型使用场景相关命令

发布于:2025-05-29 ⋅ 阅读:(25) ⋅ 点赞:(0)

1 建立本地仓库与远程仓库的联系

  • step1:初始化本地仓库。这将在当前目录创建一个 .git 文件夹,使该目录成为 Git 的本地仓库。
git init
  • step2:添加远程仓库地址(设置“远程仓库”)
git remote add origin https://github.com/yourname/yourrepo.git

origin:是远程仓库的默认名称(你也可以改为别的名字,但推荐保留 origin)。
https://...git:是远程仓库的克隆地址(可以是 HTTPS 或 SSH)。

可以通过以下命令查看远程仓库是否添加成功:

git remote -v
  • step3:将本地代码提交并推送到远程仓库(首次)
  1. 添加文件并提交到本地仓库:
git add .
git commit -m "Initial commit"
  1. 推送到远程仓库并建立关联(首次推送时需要):
git push -u origin master
或者 git push -u origin main

-u 参数的作用:建立本地分支与远程分支的追踪关系。以后可以直接用 git pushgit pull,不用再每次都加远程名和分支名。

  • step4:之后每次更新,只需:
git add .
git commit -m "your message"
git push

如果是先在 GitHub 上建的仓库,再克隆下来:

git clone https://github.com/yourname/yourrepo.git

此时远程地址已经自动关联好了

2 作为开发者参与项目的常用命令

2-1 一般步骤

  • step1首次配置(只需配置一次)
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
  • step2克隆项目(从远程获取代码)
git clone https://github.com/yourname/yourproject.git
cd yourproject
  • step3开发过程中的常用操作
  1. 查看当前状态
git status
  1. 拉取最新远程改动(建议先同步再修改)
git pull
  1. 新建并切换到新分支开发
git checkout -b feature/your-feature-name
  1. 添加修改的文件(所有修改)
git add .

或只添加指定文件:

git add file.txt
  1. 提交修改
git commit -m "描述清晰的提交信息"
  1. 推送分支到远程
git push origin feature/your-feature-name

2-2 合并与同步主分支改动

  1. 切换到主分支
git checkout main  # 或 master
  1. 拉取主分支最新代码
git pull
  1. 切换回功能分支并合并主分支
git checkout feature/your-feature-name
git merge main

2-3 查看日志和差异

  • 查看提交历史
git log --oneline --graph --all
  • 查看某个文件的修改差异
git diff file.txt

2-4 提交后想修改或撤销

  • 修改上一次提交信息(未 push)
git commit --amend
  • 撤销某次提交(保留修改)
git reset --soft HEAD~1

2-5 分支管理

  • 查看所有分支
git branch -a
  • 删除本地分支
git branch -d feature/xxx
  • 删除远程分支
git push origin --delete feature/xxx

2-6 清除未被追踪的文件(谨慎使用)

git clean -fd

3 作为远程仓库管理者如何管理

3-1 开发者提交代码后,管理者的常规处理流程

开发者提交方式

  • 推送分支到远程(如 feature/login
  • 或发起 Pull Request / Merge Request(如 GitHub、GitLab)

管理者的处理流程

  1. 获取开发者提交的代码
git fetch origin
# 从远程仓库 `origin` 获取最新的分支和提交记录,但不会自动合并到当前分支。
# `origin`:是远程仓库的默认名称。
# 这个命令会同步远程仓库的更新到本地的 `.git` 数据库中,比如远程的新分支、提交记录等。
# 不会改变当前工作目录里的任何文件或分支状态。
# 相当于“悄悄地更新了远程仓库信息”,不动你的代码。


git checkout feature/login
# 切换到名为 `feature/login` 的本地分支。
# 如果这个分支是远程新创建的、本地还没有,那么需要加上 `-t`(跟踪远程分支):
# git checkout -t origin/feature/login 或 git switch -c feature/login origin/feature/login

上述命令的含义:

  1. 从远程拉取所有更新信息;
  2. 切换到一个你想要查看或工作的分支(比如某个开发者提交的 feature/login 分支);

如果本地没有该分支,推荐完整做法:

git fetch origin
git checkout -b feature/login origin/feature/login

# `-b feature/login`:创建本地分支;
# `origin/feature/login`:指定跟踪哪个远程分支。
  1. 代码审查
  • 使用 GitHub/GitLab/Gitea/Bitbucket 的 Web 界面查看修改、讨论、留言。
  • 可以用如下命令本地查看差异:
git diff main...feature/login
  1. 测试/验证
  • 管理者会在本地或 CI/CD 环境中 运行测试
  • 检查是否有语法错误、逻辑问题、性能下降等。
  1. 合并代码
    合并分支回主分支(如 main)有几种方式:
合并方式 命令 / 操作 特点
普通合并(推荐) git merge feature/login 保留历史,产生合并 commit
重写历史合并 git rebase feature/login 整理提交历史,可能引发冲突
GitHub 操作 点击 “Merge pull request” 自动合并,支持 squash/rebase

3-2 管理者的日常维护职责

任务 命令 / 工具 说明
删除合并完成的远程分支 git push origin --delete xxx 清理无用分支
查看提交日志 git log --oneline --graph 检查分支和合并历史
强制标准命名和保护策略 GitHub 分支保护设置 防止直接向 main 推送
回滚误提交 git revert / git reset 根据情况决定是否保留历史
添加 tag / 发布版本 git tag v1.0.0 && git push --tags 版本管理
配置 CI/CD 检查每次 PR GitHub Actions / GitLab CI 等 自动测试、构建、部署

3-3 管理者应关注的最佳实践

  • 分支命名规范化(如:feature/, bugfix/, release/
  • 强制 code review 和 CI 通过后再合并
  • 禁止直接 push 到 main
  • 定期清理 stale 分支
  • 发布版本前打 tag
  • 用 squash 合并清理历史

3-4 补充

当有 Pull Request 时,管理员可以:

  • Merge:保留所有 commit
  • Squash and merge:将所有 commit 合并为一个(常用于整理历史)
  • Rebase and merge:将每个提交 replay 到主分支后面(清洁但可能有冲突)

4 作为普通贡献者如何参与项目

4-1 Fork 并 Clone 项目

  1. 点击 GitHub 项目页面的 Fork 按钮

这会把主项目复制一份到你的 GitHub 账户,例如:

  • 原仓库:https://github.com/openai/project.git
  • 你的 Fork:https://github.com/yourname/project.git
  1. Clone 你的 Fork 到本地
git clone https://github.com/owner/project.git
cd project
  1. 添加主项目作为远程源(方便同步主仓库更新)
git remote add upstream https://github.com/openai/project.git

检查远程列表:

git remote -v
# origin    https://github.com/yourname/project.git
# upstream  https://github.com/openai/project.git

4-2 创建分支,开发功能

  1. 同步主项目更新(可选)
git checkout main
git fetch upstream
git merge upstream/main

或直接重设为一致:

git reset --hard upstream/main
  1. 创建新功能分支(不要在 main 上开发)
git checkout -b feature/your-task-name
  1. 开发 & 提交
git add .
git commit -m "Add XXX feature"

可以多次 commit,保持粒度清晰。

4-3 推送分支并发起 Pull Request

  1. 推送分支到你自己的远程仓库(origin)
git push -u origin feature/your-task-name
  1. 在 GitHub 网页上,点击 “Compare & pull request” 按钮

填写描述 → 选择目标是主项目的 main 分支 → 提交 PR

4-4 等待审核与合并

  • 保持关注 PR 状态,维护者可能会提出修改建议
  • 可以在本地继续修改再 git push 到同一分支,PR 会自动更新

4-5 PR 被合并后,清理本地和远程分支

git checkout main
git pull upstream main

git branch -d feature/your-task-name
git push origin --delete feature/your-task-name

4-6 小结

fork 主仓库
   ↓
clone 自己的 fork
   ↓
添加主仓库为 upstream(可选)
   ↓
新建 feature 分支 → 修改 → commit
   ↓
push 到 origin(你的仓库)
   ↓
发起 PR 到主项目的 main 分支
   ↓
等待审核 → 被合并
   ↓
删除旧分支,准备下一个任务

常用命令参考

操作 命令
添加主项目为 upstream git remote add upstream <主项目地址>
同步主项目代码 git fetch upstream && git merge
新建分支 git checkout -b feature/xxx
提交修改 git add . && git commit -m "message"
推送分支 git push -u origin feature/xxx
删除远程分支 git push origin --delete feature/xxx

网站公告

今日签到

点亮在社区的每一天
去签到