创建一个git本地仓库
1. git init
:在一个空目录下创建初始化一个本地仓库
2. git clone
:从远程仓库中克隆到本地仓库中
git基本组成框架:Workspace、Index / Stage、Repository、Remote
工作区 Workspace:开发者工作区,(.git)文件所在目录
暂存区 Index / Stage:存放在 (.git/index)中,所以暂存区也叫作索引(index)
版本库 Repository:(本地仓库)工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。 Remote:远程仓库
git文件状态
Untracked:(Untracked files)新增加的文件
Modified:(Changes not staged for commit)已修改状态,但是尚未被提交
Staged:(Changes to be committed)暂存状态,对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中
Unmodified:已保存在git仓库中
git 状态转换
代码演示
git init
初始化一个本地仓库
touch readme.txt
创建一个 readme.txt 文件
git status
此时文件状态为 Untracked,处于工作区中,还未添加到暂存区
git add
将 readme.txt 文件加入到暂存区
git status
此时暂存区的 readme.txt 文件处于 Staged 状态
echo "hello git" > readme.txt
修改 readme.txt 文件
git status
此时文件状态为 Staged,Modified,已暂存和已修改
暂存状态标识此文件上次 add 已暂存的部分,已修改为 add 之后修改的部分,如果此时进行 commit,则只会提交add之前的内容,修改的部分不会提交
git add
将修改添加到暂存区
git status
此时文件状态又变为 Staged
git commit readme.txt -m "1 commit"
提交暂存区的文件到仓库,-m 为提交消息,必选
git status
此时文件状态为 Unmodified
echo "…" >> readme.txt
再次修改 readme 文件
git status
文件只有 Modified 状态
再依次使用 git add
提交到暂存区,git commit
提交到仓库
或者使用git commit -a
同时完成两步操作git status
此时状态为已提交 Unmodified