笔记1

0 阅读3分钟

工作目录、暂存区以及版本库概念

版本库:==.git==隐藏文件就是版本库,版本库中存储了很多配置信息、日志信息和文件版本信息等

暂存区:.git文件夹中==index==文件就是暂存区,也可以叫stage。暂存区是一个临时保存修改文件的地方

工作区 ----->暂存区 ------->版本库

工作目录:包含.git文件夹的目录就是工作目录

状态

  • untracked末跟踪(未纳入版本控制)

  • tracked已跟踪(已纳入版本控制)

    • Unmodified 未修改状态

      • Modified 已修改状态

      • Staged 已暂存状态

    git status //查看文件状态在工作目录下
    git status -s //查看更简洁
    绿色 //文件存放在暂存区有待提交
    红色 //文件在工作目录未提交到暂存区
    

在这里插入图片描述

Git基本命令

配置基本信息

设置用户信息

git config --global user.name "用户名"
git config --global user.email "email"

查看配置信息

git config --list
git config user.name

配置的信息保存在用户下==.gitconfig==文件中

git生成

git init //初始化,在目录中会生成.git文件
git clone //从远程仓库克隆

git提交

git add //将修改工作目录覆盖原先的暂存区
git commit -m "说明" //将暂存区提交到版本库	
git commit -am "说明" //将工作目录提交到版本库

git撤消

在这里插入图片描述

git log --查看历史操作记录
git reset HEAD~  //注:HEAD 表示最新提交的快照,而 HEAD~ 表示 HEAD 的上一个快照,HEAD~~表示上上个快照,如果表示上10个快照,则可以用HEAD ~10
此时我们的快找回滚到了第二棵数(暂存区域)

git删除文件

问题一:不小心删除文件怎么办?

git checkout -- 删除的文件 //回滚

问题二:那么如何彻底删除一个文件呢?

git rm 文件 //删除文件注意:rm 命令删除的只是工作目录和暂存区域的文件(即取消跟踪,在下次提交时不纳入版本管理)

执行git status还会提示但似乎有个文件在暂存区域和当前目录不见了!

git reset --soft HEAD~ //命令将快照回滚到上一个位置,然后重新提交

问题三:我在工作目录中增加一个 test.py 文件,然后执行 git add test.py 命令将其添加到暂存区域,此时我修改 test.py 文件的内容,那么暂存区域和工作目录就是两个不同的 test.py 文件了,此时如果我执行 git rm test.py 命令,Git 会下意识地阻止我,这是怎么办?

因为两个不同内容的同名文件,谁知道你是不是搞清楚了都要删掉?

git rm -f test.py //命令就可以把两个都删除。

问题四:我只想删除暂存区域的文件,保留工作目录的,应该怎么操作?

git rm --cached 文件名

git重命名

git ren 旧文件名 新文件名

git分支

git  branch 分支名  //新建分支
git checkout 分支名  //切换分支
git merge 分支名  //合并到时master主分支上