1分钟了解js装饰器
592 2023-04-03 03:29:02
# 校验是否安装成功:输出版本号即安装成功。git --version
Git
前需要做的最小配置# 用户名设置git config --global user.name <your_name># 用户邮箱地址设置:便于Code Review邮件发送git config --global user.email <your_email>
config
的三个作用域:config
的配置,加--list
。# 查看命令git config# 查看所有git config --list# 分类查看git config --list --localgit config --list --globalgit config --list --system
Git
常用命令:# 创建仓库git init [<project_name>]# 查看工作区和暂存区状态git status# 新增单个改动文件到暂存区git add <file_name># 新增整个文件夹下的文件到暂存区git add <file_folder># 同时新增单个文件和整个文件夹下的文件到暂存区git add <file_name> <file_folder># 增加所有改动到暂存区git add .# 同步所有改动文件到暂存区git add -u# 创建commitgit commit -m "<commit_message>"# 直接同步工作区的内容到版本历史git commit -am "<commit_message>"# 查看当前分支日志git log# 查看所有分支日志git log --all# 查看简洁版日志git log --oneline# 查看最近几次日志git log -n4 # 查看最近几次简洁版日志git log -n2 --oneline# 图形化查看日志git log --all --graph# 查看本地分支git branch -v# 创建分支git checkout <branch_name># 创建并切换分支,默认基于当前分支节点创建git checkout -b <branch_name># 基于现有分支或版本创建并切换分支git checkout -b <branch_name> <old_branch | commit_id> # 同步commitgit pull# 提交commitgit push# 重置工作区和暂存区的改动git reset --hard [<回退到的commit_id>]# 重置暂存区跟HEAD一致git reset HEAD [<file_name>]# 重置工作区跟暂存区一致git checkout -- <file_name># 查看差异git diff <commit_id_1> <commit-id_2># 比较暂存区和HEAD所含文件的差异,确认变更内容git diff --cached# 比较工作区和暂存区的差异git diff [[<branch_name | commit_id> <branch_name2 | commit_id2> ... <branch_nameN | commit_idN>] -- <file_name> [<file_name2> ... <file_nameN>]]# 删除分支: -d保险删除git branch -d <branch_name>git branch -D <branch_name># 修改最近次commit的messagegit commit --amend# 修改老旧commit的messagegit rebase -i <目的commit_id的前一个commit_id> # 开发中临时加塞紧急任务暂存信息git stash# 读取暂存信息到工作区git stash apply# git stash list 不保留信息git stash pop# 仓库备份:不带工作区git clone --bare <git_address> <git_local_name>
工作区改动后
add
到暂存区,确认没问题后commit
到版本历史。
git mv <原文件名[.后缀]> <新文件名[.后缀]># 删除文件git rm <file_name>
等同于如下3步:
1) 工作区修改文件名;
2) add
到暂存区;
3) commmit
到版本历史。
gitk
gitk
中文乱码解决方案:# 在C:\Users\Adminstrator\.gitconfig文件末尾加上如下内容设置下文件编码即可[gui] encoding = utf-8
// git裸仓库目录.git ├── config // 记录仓库配置信息 ├── description ├── HEAD // 记录当前工作分支 ├── hooks │ ├── applypatch-msg.sample │ ├── commit-msg.sample │ ├── fsmonitor-watchman.sample │ ├── post-update.sample │ ├── pre-applypatch.sample │ ├── pre-commit.sample │ ├── pre-merge-commit.sample │ ├── pre-push.sample │ ├── pre-rebase.sample │ ├── pre-receive.sample │ ├── prepare-commit-msg.sample │ └── update.sample ├── info │ └── exclude ├── objects // 对象合集 │ ├── 0a // 松散tree │ ├── ... │ ├── info │ └── pack // git自我梳理,打包0a松散文件 ├── package.json ├── refs // 引用 │ ├── heads //分支,独立开发空间 │ └── tags // 标签,里程碑 └── yarn.lock
tips1
:用markdown
编写文件目录结构tree-node-cli
cnpm i tree-node-cli -g
# -L 确定要几级目录# -I 排除哪个文件夹下的# > 在README文件里生成项目结构树tree -L 3 -I "node_modules" > README.md
tips2
:文件访问相关命令# 输出文件内容cat <file_name># 查看文件内容类型:commit,tree,blobgit cate-file -t <file_content># 查看文件内容git cate-file -p <file_content>
commit
,tree
和blob
三个Git
对象之间的关系commit
:每次变更。一个commit
对应一棵tree
。tree
:当前commit
对应的本项目仓库的文件夹(tree
)及文件(blob
)快照。blob
:内容相同的文件。不管文件名叫什么,只要文件内容相同,那就是一个blob
(节省存储空间)。detached HEAD
分离头指针# 唤起分离头指针git checkout <commit_id>
基于某次commit
,不关联任何分支,分支切换时如若不关联分支即被丢失,可做尝试性变更开发。
HEAD
标识符HEAD
可以指向分支、commit
(分离头指针),最终落脚于commit
(常用于快速指代)。
HEAD^
,即HEAD^1
或HEAD~1
:上一级。HEAD^^
,即HEAD^1^1
或HEAD~2
:上级的上级。
.gitignore
指定不需要Git
管理的文件