Git 创建代码仓库
bash
mkdir project # 创建普通项目目录
cd project # 进入项目目录
git init # 创建 .git,使当前目录成为 Git 仓库
# 不跟踪文件,也不创建提交记录
git add . # 将当前目录下的文件加入暂存区
# 也可用 git add 文件名,只添加指定文件
git commit -m "first commit" # 将暂存区内容保存为第一个版本
# 只有 commit 才真正创建提交记录
流程:
text
普通目录 → git init → Git 仓库
工作区 → git add → 暂存区
暂存区 → git commit → 本地仓库版本
作用边界:
git init:创建仓库,不记录文件。git add:选择下次提交的内容,不产生版本。git commit:记录暂存区快照,产生一个版本。
从远程仓库创建
bash
git clone 仓库地址 # 下载远程仓库到本地
cd 仓库名 # 进入克隆后的项目目录
git 仓库的状态变化:
工作区 --git add--> 暂存区 --git commit--> 本地仓库
Git 忽略文件
- 使用
.gitignore指定不需要 Git 跟踪的文件。 .gitignore可以放在根目录,也可以放在子目录。- 子目录中的规则只对该目录及其子目录生效。
gitignore
*.log # 忽略所有 log 文件
build/ # 忽略 build 目录
/build/ # 只忽略根目录下的 build
build/*.xml # 忽略 build 第一层的 xml
build/**/*.xml # 忽略 build 所有层级的 xml
!important.xml # 取消忽略
重点:
.gitignore只对未被 Git 跟踪的文件生效。
已被跟踪的文件需要先取消跟踪:
bash
git rm --cached 文件名
git rm -r --cached 目录名
检查忽略规则:
bash
git check-ignore -v 文件路径
Git 查看修改
bash
git status # 查看哪些文件被修改
git diff # 查看未暂存的具体修改
git diff --cached # 查看已暂存、未提交的修改
git diff HEAD # 查看所有未提交修改
git diff 文件名 # 查看指定文件修改
status看修改了哪些文件,diff看具体修改内容。
git dff 看的是工作区 与 暂存区
git status 看的是变化:
工作区 ↔ 暂存区
暂存区 ↔ 本地仓库
Git 撤销未提交修改
bash
git restore 文件名 # 撤销工作区修改,恢复为暂存区内容
git restore . # 撤销当前目录全部未暂存修改
git restore --staged 文件名 # 取消 git add,修改仍保留在工作区
git restore --staged . # 取消暂存全部文件
git restore --staged 文件名
git restore 文件名 # 同时撤销暂存和工作区修改
删除未跟踪文件:
bash
git clean -n # 预览将删除的文件
git clean -f # 删除未跟踪文件
git clean -fd # 删除未跟踪文件和目录
旧写法:
bash
git checkout -- 文件名 # 等价于 git restore 文件名
git reset 文件名 # 等价于取消暂存
速记:
restore撤销文件修改,--staged取消暂存,clean删除未跟踪文件。
Git 查看提交记录
bash
git log # 查看完整提交记录
git log --oneline # 单行简洁显示
git log --graph # 图形化显示分支关系
git log --all --graph --oneline # 查看所有分支提交图
git log -n 5 # 查看最近 5 次提交
git log 文件名 # 查看某个文件的提交记录
git show 提交ID # 查看某次提交的具体修改
常见提交信息:
text
commit ID
作者
提交时间
提交说明
速记:
git log看历史,git show看某次提交详情。