Git 常用命令与工作流程总结

Git 常用命令与工作流程总结

基本工作原则

  • 勤拉取:定期从远程仓库拉取最新代码,确保本地代码与远程同步。
  • 勤提交:保持小步提交,便于追踪代码变更。
  • 勤合并:频繁合并分支,减少未来冲突。

配置仓库信息

全局配置:

bash 复制代码
git config --global user.name "用户名"
git config --global user.email "邮箱地址"

项目级配置:

bash 复制代码
git init
git config --local user.name "用户名"

查看配置:

bash 复制代码
git config --list

三个区

  • 工作区:本地修改文件的地方。
  • 暂存区:使用 git add 后,文件进入暂存区,等待提交。
  • 版本库:使用 git commit后,文件进入版本库,永久存储。

常用 Git 命令

初始化仓库:

bash 复制代码
git init

添加文件到暂存区:

bash 复制代码
git add 文件名
git add .  # 添加所有修改

提交到版本库:

bash 复制代码
git commit -m "提交信息"

查看提交历史:

bash 复制代码
git log  # 完整日志
git log --oneline  # 简要日志

查看工作区状态:

bash 复制代码
git status

比较差异:

bash 复制代码
git diff  # 工作区与暂存区差异
git diff --cached  # 暂存区与最后一次提交差异

回退到某个版本:

bash 复制代码
git reset --hard 版本号

查看所有 Git 操作记录:

bash 复制代码
git reflog

撤销某次提交:

bash 复制代码
git revert commit-id

分支管理

创建分支:

bash 复制代码
git branch 分支名

查看所有分支:

bash 复制代码
git branch

切换分支:

bash 复制代码
git checkout 分支名

合并分支:

bash 复制代码
git merge 分支名

删除分支:

bash 复制代码
git branch -d 分支名

远程仓库管理

克隆远程仓库:

bash 复制代码
git clone 仓库地址

拉取远程分支:

bash 复制代码
git pull 远程仓库名 分支名

推送分支到远程仓库:

bash 复制代码
git push -u origin 分支名

Git Reset 用法

软回滚(保留工作区和暂存区的更改):

bash 复制代码
git reset --soft HEAD~1

混合回滚(重置暂存区,保留工作区的更改):

bash 复制代码
git reset --mixed HEAD~1

硬回滚(重置工作区和暂存区的更改):

bash 复制代码
git reset --hard HEAD~1

Rebase 和 Merge

Merge:适用于多个人开发同一个模块时,保留提交记录,便于排查问题。

  • 产生额外的合并提交:在进行 merge 操作时,两个分支(例如 master 和 feature)会合并到一起,生成一个额外的合并提交(merge commit)。这个合并提交包含了两个分支的历史,形成了一个不连续的、叉开的历史树结构。

  • 保留完整的提交历史:合并后的历史会包含两个分支所有的提交记录。这意味着每个分支的独立历史都被保留,整个历史图上会出现多条分支轨迹。

Rebase:适用于模块无关联的情况下,保持提交历史的线性。

  • 重新排列提交历史:rebase 操作会将 feature 分支的提交放置在 master 分支的最新提交之后,生成一个线性、干净的历史,没有额外的合并提交。提交的顺序可以发生变化。
  • 形成线性历史:rebase 后的历史更加简洁、线性。合并时不会产生额外的 merge commit,最终的历史看起来像是所有的提交都是在同一个分支上完成的,没有分叉点。

分支开发流程

开发分支 → 主分支:
开发功能:

bash 复制代码
git checkout -b 开发分支名

合并到主分支:

bash 复制代码
git merge develop

注意的点

  • 在开发分支开发完成,把修改同步到线上 然后切换到主分支,然后pull
  • 然后切换到开发分支,合并主分支到开发分支,然后push,这样你的分支就会保留你的修改并且和主分支同步
  • 然后切换到主分支,合并开发分支,然后push,这样主分支就会添加你的开发分支修改内容
  • 这样可以最小减少冲突,还能让你的分支和主分支同步
相关推荐
爱奥尼欧9 小时前
【Git】远程分支删了本地还在、两个分支历史不相干?两招故障排解
开发语言·git
Java后端的Ai之路9 小时前
Git冲突完整排查与实战:本地修改覆盖报错到成功推送全流程复盘
开发语言·人工智能·git·python·pop
一个心烑10 小时前
配置项目git的 SSL 证书
git·网络协议·ssl
IT从业者张某某18 小时前
【鸿蒙PC命令行适配】GitUI 移植的工程实践:双 Git 引擎(libgit2/gitoxide)的鸿蒙适配之路
git·华为·harmonyos
xinjia_ctrl1 天前
暑假实习总结
git·后端·spring·maven·intellij-idea
Molesidy1 天前
【Git】分别给出添加到Keil工程和IAR工程中的gitnore文件以便不跟踪编译文件的git记录
git·vscode·插件
颜颜yan_1 天前
Git Cola 鸿蒙 PC 版适配全记录:从 Qt 桌面工具到 ArkTS 原生应用
git·qt·harmonyos
知福致福1 天前
【技术复盘】Git 分支污染与提交污染事故排查与解法
大数据·git·elasticsearch
ai安歌1 天前
Git Extensions 鸿蒙 PC 适配全记录:从 WinForms 客户端到 ArkUI 原生工作台
git·华为·harmonyos