Git
Git 是什么
Git 是目前世界上最先进的分布式版本控制系统(没有之一)。
什么是版本控制?
版本控制是指对软件开发过程中各种程序代码、说明文档等文件的变更进行管理,它将追踪文件变化,记录文件的变更时间、变更内容、甚至变更执行人进行记录,同时对每一个阶段性变更(不仅仅只是一个文件的变化)添加版本编号,方便将来进行查阅特定阶段的变更信息,甚至是回滚。
安装
- 下载安装:git-scm.com/
- 查看是否安装成功:
git --version输出版本号信息表示安装成功
配置
- 当安装完 Git 应该做的第一件事就是设置你的用户名称与邮件地址
git config user.name "你的姓名"
git config user.email "你的邮箱"
- 全局配置加上--global
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱"
- 检查配置
# 所有配置
git config --list
# 指定配置
git config user.name
初始化仓库
在需要版本控制的项目目录下 git init
git init
# 该命令会创建一个.git的子目录,这个子目录下包含了初始化git仓库所有必须文件,不可轻易改动
区域
- 工作区
- 暂存区
- 仓库
git 常用命令
-
git status 追踪文件状态
- 已修改(modified)
- 已暂存(staged)
- 已提交(committed)
- 未追踪(Untracked)
-
git add :将工作区代码添加到暂存区
-
git commit -m :将暂存区代码提交到本地仓库,每次提交时会生成一个 hash 值为本此版本提交的唯一 id
-
git commit --amend -m 在不增加一个新的提交版本的情况下将新修改的代码追加到前一次的提交中
-
commit msg 提交规范---在 commit msg 前添加对应前缀,例:
git commit -m 'update 接口参数调整'feat 增加新功能 update 修改功能 fix 修复问题/BUG style 代码风格相关无影响运行结果的 perf 优化/性能提升 refactor 重构 revert 撤销修改 test 测试相关 docs 文档/注释 chore 依赖更新/脚手架配置修改等 workflow 工作流改进 例如workflow 全组件英文改造 ci 持续集成 types 类型定义文件更改 wip 开发中
-
-
git restore --staged/--cached :将文件从暂存区重置到工作区
-
git reset 重置文件
- git reset --soft 将文件从本地仓库重置到暂存区
- git reset --mixed 将文件从本地仓库重置到工作区
- git reset --hard 将文件从本地仓库重置到上一个版本(此次所有修改将被清空)
-
git push 将文件从本地仓库推至远程仓库
-
git pull 将文件从远程仓库拉取到本地
-
分支
-
git branch
-
git branch 创建分支
-
git branch 查看本地分支
-
git branch -a 查看所有分支
-
git branch -r 查看远程分支
-
git branch -d 删除对应分支 不能删除未合并分支
-
-
git checkout
- git checkout 切换分支
- git checkout -b 创建并切换到新分支
-
-
git merge 合并指定分支到当前分支上
-
git clone 拉取远程仓库项目
-
git remote
- git remote -v 查看本地仓库关联的远程仓库
- git remote add 添加远程仓库
- git remote rm 移除远程仓库
-
git stash - git stash save "备注“ //将还不想提交的修改暂时保存 - git stash list //查看当前 stash 中的内容 - git stash apply stash@{0} //选择第一个版本进行复原 - git stash drop stash@{0} //删除第一个版本 - git stash clear //清空暂存区所有内容 - git stash pop //将当前 stash 中的内容弹出,并应用到当前分支对应的工作目录上 - git stash branch //创建新分支,并应用最新的存储条目,等价于 git checkout -b my-new-branch git stash apply 同样,如果希望应用特定存储,则可以用 git stash branch stash@{2}
-
git fetch git fetch 是从远程仓库中拉取最新版本到本地,但不会自动合并。这个命令执行完后,你可以用 git merge 命令手动进行合并
忽略文件 .gitignore
项目中某些文件不希望纳入 Git 管理,我们可以新建一个.gitignore 文件来列出不需要 Git 管理的文件