upate some cmds

This commit is contained in:
shzhxh 2020-05-25 21:21:09 +08:00
parent ffbfd8494d
commit 4f3d585b55
3 changed files with 43 additions and 16 deletions

View File

@ -2,3 +2,9 @@
git commit [options] [--] [files] # 把改变记录到仓库
```
#### 选项
```
-a, --all #
```

View File

@ -1,13 +1,16 @@
[git内部原理](https://www.open-open.com/lib/view/open1328070620202.html#articleHeader3)
#### 参考资料
- [git内部原理](https://www.open-open.com/lib/view/open1328070620202.html#articleHeader3)
- [git底层数据结构和原理](https://yq.aliyun.com/articles/761686)
#### 重要概念
- 分支:每次提交都是一个点,相邻的两次提交连成线,多条线连成一条路径,每条路径就是一个分支。
- HEAD当前工作区所在的位置这个位置可以是任意的某个提交。
- 工作区:仓库所在的目录,包括除.git目录外的所有文件和目录。
- 暂存区:使用`git add` 命令把工作区的内容放到暂存区,暂存区在.git目录里。
- 本地仓库:使用`git commit`命令把暂存区的内容放到本地仓库,本地仓库也在.git目录里。
- 远程仓库:使用`git push`命令把本地仓库里的内容放在远程仓库。
- 工作区(workspace):仓库所在的目录,包括除.git目录外的所有文件和目录。
- 暂存区(index):使用`git add` 命令把工作区的内容放到暂存区,暂存区在.git目录里。
- 本地仓库(local repository):使用`git commit`命令把暂存区的内容放到本地仓库,本地仓库也在.git目录里。
- 远程仓库(remote repository):使用`git push`命令把本地仓库里的内容放在远程仓库。
- blob在git内存储的不是文件名而仅仅是文件的内容这种对象被称为blob。
- tree在tree里存储的是blob或其它tree类似于数据结构里树的非叶子结点这种对象被称为tree。
- commit保存了tree的创建者、创建时间和注释的信息这种对象被称为commit。
@ -47,7 +50,7 @@ git-describe #
git-diff # 打印各种差别
git-fetch # 从其它仓库下载对象和引用
git-format-patch
git-gc
git-gc # 清除不必要的文件并优化本地仓库
git-grep
git-gui
git-init # 初始化仓库
@ -165,15 +168,22 @@ git的用户接口分两层
`.git`目录包含了git存储和操作的所有内容是理解git原理的核心。其结构如下
- branchs/新版本的git不再使用此目录。
- hooks/:客户端或服务器端勾子脚本。
- info/:保存了一份不希望在`.gitignore`文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。
- **refs/**存储指向数据的提交对象的指针是git的核心部分。
- **objects/**存储所有的数据内容是git的核心部分。
- config项目特有的配置选项。
- description仅供gitweb程序使用。
- **index**保存了暂存区的信息是git的核心部分。
- **HEAD**指向当前分支是git的核心部分。
| 目录或文件 | 描述 |
| -------------- | ------------------------------------------------------------ |
| COMMIT_EDITMSG | 文本文件最后一次commit的注释 |
| config | 项目特有的配置选项。 |
| description | 仅供gitweb程序使用。 |
| FETCH_HEAD | 文本文件本地仓库的每个分支最后一次和远程仓库交互时的commit id |
| **HEAD** | 文本文件其内容是当前工作区所在的分支是git的核心部分。 |
| **index** | 保存了暂存区的信息,可以用`git ls-files`命令查看其内容是git的核心部分。 |
| ORIG_HEAD | 文本文件,在进行风险操作(reset,merge,rebase)时保存HEAD指向的commit id |
| packed-refs | 如执行了`git gc`命令refs目录中将会删除某些文件为保证效率这些被删除的文件的内容将会保存到packed-refs文件里 |
| branchs/ | 目录新版本的git不再使用此目录。 |
| hooks/ | 目录,客户端或服务器端勾子脚本。 |
| info/ | 保存了一份不希望在`.gitignore`文件中管理的忽略模式 (ignored patterns) 的全局可执行文件。 |
| logs/ | 保存了各个分支的提交日志 |
| **objects/** | 存储所有的数据内容是git的核心部分。 |
| **refs/** | 存储指向数据的提交对象的指针是git的核心部分。 |
内容寻址文件系统是一个key-value数据存储系统。

View File

@ -1,6 +1,7 @@
#### 安装
```shell
./configure --target-list=riscv32-softmmu
mkdir build
../configure --target-list=riscv32-softmmu,riscv64-softmmu
sudo make install
```
> ERROR: glib-2.22 gthread-2.0 is required to compile QEMU
@ -361,6 +362,16 @@ sendkey # 键盘操作
- `virt` - 16550A UART, VirtIO, device-tree
VirtIO板模拟了完整的计算机系统方便操作系统的开发。它实现了VirtIO MMIO传输支持VirtIO块设备和VirtIO网络设备还有16550a UART用于控制台访问。这样qemu原生的各种块设备和网络实现都可用了。
```
# 查看virt machine的硬件配置信息
sudo apt install device-tree-compiler
qemu-system-riscv64 -M virt -M dumpdtb=riscv64-virt.dtb -bios default
dtc -I dtb -O dts -o riscv64-virt.dts riscv64-virt.dtb
view riscv64-virt.dts
```
##### 设备树