git 的工作流程
- 远程仓库 -> pull -> 工作区 /(远程仓库 -> clone -> 本地仓库)
- 工作区 -> add -> 缓存区 -> commit -> 本地仓库 -> push -> 远程仓库
- 版本库(本地仓库):.git 文件夹 版本库中存储了配置信息、版本信息、日志信息等
- 工作目录:包含 .git 文件夹的目录就是工作目录
- 缓存区:.git/index 文件就是缓存区 用于缓存临时修改的文件信息
工作目录 -> add -> 缓存区(.git/index) -> commit -> 版本库(本地仓库)
# git 工作目录下文件的两种状态
- untracked 未跟踪
- tracked 已跟踪
- - modified 已修改
- - unmodified 未修改
git 的常用命令
# 查看文件状态
- git status 查看文件详细状态信息
- git status -s 查看文件简单状态信息
# 将文件加入缓存区
- git add 文件名
- git add --all // 缓存未跟踪的所有文件
- git commit -a -m "delete a file" // 所有未跟踪的文件加入缓存区并提交
# 将文件提交到本地仓库
- git commit 文件名 -m "提交信息"
- git commit --all // 提交所有
# 删除文件
- git rm 文件名
- git commit -m "delete file" // 删除文件后可以直接提交到本地仓库
# 查看日志记录
- git log
# 将本地仓库的修改推送到远程仓库
- git push
将文件添加到忽略列表
- 工作目录下创建 .gitignore 文件
# 忽略 工作目录下.idea/ 文件夹下的所有文件
.idea/
# 忽略.class 后缀的所有文件
*.class
# 忽略 target 目录及其子目录下的所有文件
target/
git 远程仓库的操作
# 查看远程仓库
- git remote
- origin 是默认的远程仓库标识符
# 查看本地仓库关联的远程仓库
- git remote -v
# 本地仓库关联远程仓库
- git remote add 标识符(origin) url
# 克隆远程仓库
- git clone url // 仓库克隆是克隆远程仓库的所有信息
# 本地仓库移除与远程仓库的关联
- git remote rm 标识符(origin)
# 从远程仓库获取最新版本的信息
- git pull // 自动合并
- git pull --allow-unrelated-histories // 若本地仓库存在文件、强制合并
- git fetch // 不会自动merge 通过 git merge 手动合并
git 分支的操作
# 查看分支
- git branch // 查看本地所有分支
- git branch -r // 查看所有远程分支
- git branch -a // 查看所有本地分支和远程分支
# 创建分支
- git branch dev // 创建 dev 分支
# 切换分支
- git checkout dev // 切换 dev 分支
# 推送分支到远程仓库
- git push 标识符(origin) dev // 推送 dev 分支到远程仓库
# 合并分支
- git merge dev // 当前所在分支为 master 分支,将 dev 分支的文件合并到 master 分支
# 删除本地分支
- git branch -d dev // 删除本地 dev 分支 不会删除远程的分支
- git push 标识符(origin) -d dev // 删除远程仓库的 dev 分支
git 标签的操作
# 标签
- 历史上的某一次提交(push)的标记、表示重要的提交、通常用来标记版本号
# 创建标签
- git tag v1.0 // 创建 v1.0 标签、记录此刻仓库的状态
# 查看已有标签
- git tag
# 查看某一标签的详细信息
- git show [tag]
# 删除标签
- git tag -d v1.0 // 删除本地 v1.0 标签
- git push origin :refs/tags/v1.0 // 删除远程的 v1.0 标签
# 推送指定标签到远程仓库
- git push 标识符(origin) v1.0 // 推送 v1.0 标签到远程仓库
# 检出标签
- git checkout -b dev v2.0 // 新建 dev 分支 并用 v2.0 标签的状态初始化本地仓库
在 idea 中使用 Git
在 idea 中使用 Git