Git分区
- 工作区: 就是你在电脑里能看到的目录。
- 暂存区: 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。
- 版本库: 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库。
Git文件状态
- untracked :新建文件的状态,未被追踪
- modified :被修改过的文件
- staged :使用
git add命令将文件修改添加到暂存区后的状态 - committed :使用
git commit命令将文件提交后的状态。staged只是暂存,还没有真正提交进Git版本库当中。
初始化Git仓库
在项目的目录下,使用git init命令。然后我们会发现多出来一个.git文件,在这个目录下就可以进行文件操作、进行提交等Git操作了。
Git 常用命令
-
git statsu可以查看工作树和暂存区状态- 通过
git status查看git状态时,红色的文件表示在工作区;绿色的文件表示在暂存区
- 通过
-
git add <file>...可以将文件的修改添加到暂存区git add .将工作区中当前目录(包括子目录)下所有的文件改动添加到暂存区git add *将工作区中当前目录(包括子目录)下的所有文件改动,但不包括文件名以.符号开头的文件的改动,添加到暂存区git add -u是git add --update的简写形式,它只会监控当前整个工作区中之前已被add的文件,将其改动添加到暂存区,而新文件因为未被追踪(untracked)而不会将修改添加到工作区git add -A是git add --all的简写形式,它会将当前整个工作区中所有的文件改动提交至暂存区,包括新增、修改和被删除的文件,不受当前所在目录限制。
-
git commit- 将暂存区内容添加到仓库中
-
git log- 查看提交历史
-
git restore --staged <file>- 将文件从缓存区中移动到工作区,
-
git checkout -- <file>- 撤销工作区中对
flie文件的改动操作
- 撤销工作区中对
Stage 赋予 Git 更多灵活性
- 修改了4个文件,在不放弃任何修改的情况下,其中一个文件不想提交,如何操作?(没add : git add 已经add: git reset --soft )
- 修改到一半的文件,突然间不需要或者放弃修改了,怎么恢复未修改前文件? (git checkout)
- 代码写一半,被打断去做其他功能开发,未完成代码保存?(git stash)
- 代码写一半,发现忘记切换分支了?(git stash & git checkout)
- 代码需要回滚了?(git reset)
- 等等
上面提到的 checkout & stash & reset 等命令,通过不同的参数搭配使用,可以在工作区,暂存区和版本库之间,轻松进行数据的来回切换。