基本命令及原理流水账记录 日期:2022-04-12
- git init 创建初始化仓库。
- git add <file name> 从工作区添加至git 库纳入版本管理。
- git库中的Object存储仅存储文件的内容和文件类别,并不储存文件名。
- git 中储存的Object储存的是文件转换后的harsh,算法有多种类别:MD5 128bit,SHA1 160bit,SHA256 256bit,SHA512 512bit, bit位数越多越不容易被破解。
- cat <file name> 在终端显示相关的文件。
- git object中存储的文档是被压缩过的。
- git 的三个区:工作区,索引区域,代码仓库。
- git ls-files 查看有索引的index的文件列表。
- git ls-files -s 查看索引文件的权限
- git status 查看工作区文件的状态。
- git commit -m "1st commit " 索引区域同步至代码仓库。双引号内的内容为提交的comment。
- 执行git commit 后:objects会新生成文件(包含tree),refs会变化,HEAD 文件指向会发生变化(永远指向当前工作的分支)等.......
- mkdir <folder name> 新增文件夹,注意:新增文件夹后,空的文件夹commit 后是不做任何改变的。
- git status 可获取工作区所有文件的状态。
- git文件的状态。
- Branch和HEAD,分支的定义:Branchs are named pointers to commits.
- git branch 显示当前工作的分支和所拥有的的分支。
- git checkout <branch name> //切换至新的分支, 即改变HEAD指针的指向。
- git branch <branch name> 创建分支。
- git branch -D <branch name> 删除分支。 // -D是强制删除分支。不能删除当前的所在分支,所以在删除分支时先切换至其他分支。
- git branch --delete <branch_name> //此种方式删除分支会提示,建议使用此种方式删除分支,分支删除后,此分支独有的对象不会被删除。(遗留的对象被称为垃圾对象)
- cat .git/HEAD 查看当前分支的指向。
- checkout 特定的commit。此时HEAD指针特定的commit。 需要获取到具体commit的指向object的哈希值。此场景可用于有分支在合并之前的commit恢复。
- git reflog //查看之前的操作记录。
- git diff // 因为目前绝大多数IDE都能提供一个非常好的diff view,所以git diff这个命令使用的比较少。
- 远程仓库的添加。将本地的仓库推送到远程仓库。ssh key需要配置, https 用的是用户名和密码的方式进行添加。命令如下: git remote add origin <https://.......> //括号内是URL。
- git push -u origin master // origin 是远程仓库的名字, master 是远程仓库的分支。
- tree .git/ //查看文件夹目录树结构。