以下所有的<>代表文件名,实际使用时不用加上
1.git仓库的初始化创建
首先创建一个合适的文件夹,创建一个本地仓库
git init <仓库名>
ps:
git init <mygit>
git只能管理仓库里的文件。所以首先要把要管理的文件复制或者创建在<mygit>这个文件夹里。
2. git的状态和三个区域
git有3个区域,工作区用于存放当前正在运行的文件,暂存区用于存放修改的但还未同步的文件,本地仓库用于存放同步后的文件,注意,工作区的文件不一定被管理了,即也可能是未跟踪状态。
从工作区到暂存区的转换可以用git add实现
git add <文件名>
ps:
git add test.txt
这样test.txt就被暂存到暂存区了。
暂存区到本地仓库的转换可以用git commit实现
git commit <文件名>
ps:
git commit test.txt
git commit <文件名> -m "这次更新的一些描述"
ps:
git commit test.txt -m "新建了一个文本"
git的状态有4种,首先是如果你在<mygit>文件下创建或者复制了一个文件,那么这个文件属于未跟踪状态,未追踪的文件git是管理不了的。
如果你是从远程仓库中拉取了一个文件,那这个文件就是未修改状态。
当你修改了一个未修改状态的文件后,他就变成了修改状态。
当你将暂存态的文件提交到了本地仓库中,那他就变成了未修改的状态。
各种状态的转换关系和命令,图上都描绘的比较清晰了。
状态的获取可以用git status
git ls-files可以查看本地仓库中的内容
如图,图中表面了该仓库下有一个文件LCD,属于未追踪的状态,我们可以调用git add命令把它添加到git管理。
git log可以查看历史版本的提交纪录。
git log --oneline可以查到曾经的版本号方便溯源。
3. git的删除
git的删除情况比较多,下面挑选一些常用的记录:
1)删除工作区文件
rm <文件名>
rm <test.c>
2) 删除工作区文件,并将这次删除放入暂存区,即想把工作区文件和仓里的文件一起删除了
注意:这种方法只能删除未修改过的文件,即工作区文件和本地仓库文件相同。
git rm <文件名>
git commit -m "文本信息"
3)删除暂存区的文件,但是保留工作区文件(文件会自动被取消跟踪),并将这次删除放入暂存区
git rm --cached
git commit -m "文本信息"
也就是我想把暂存区和仓里的文件删了,但是我又想保存我现在工作区的文件可以这么用。
4)删除工作区和暂存区文件,并将这次删除放入暂存区,即想把工作区文件和暂存区文件和本地仓里的文件一起删除了
git rm -f <文件名> -r
ps:
git rm -f test.txt -r
git commit -m "delete all"
这种方法可以删除已修改的文件。
4.git的重置
git reset是用来溯源之前的版本的。
git reset [--soft/--mixed/--hard] [HEAD/版本号]
首先是三个可选选项的说明:
--hard 会清空工作目录和暂存区的改动,
--soft则会保留工作目录的内容,并把因为保留工作目录内容所带来的新的文件差异放进暂存区。
--mixed 参数。git reset 如果不加参数,那么默认使用 --mixed 参数。此时表示要:保留工作目录,并清空暂存区。
git reset --soft HEAD~1//回退到上个版本
git reset 052e //默认以mixed方式回退到052e版本号的版本
git reset HEAD~2//回退到上上个版本
5.git的恢复
git restore是用来实现小规模恢复的。主要有以下两个作用
1)复工作区中的文件
恢复工作区中的文件到最近的提交状态(即丢弃对文件的所有未提交更改):
git restore test.txt
2)恢复暂存区中的文件
将暂存区中的文件恢复到工作区,实际上是将文件从暂存区移除(不提交):
git restore --staged test.txt
6.git的比较
git diff用于不同版本直接的比较。下面记录常用的。
7.git的分支
8.git的远程仓库
9.git的工作模型
GitHub Flow模型
GitFlow模型