基础linux命令
- clear :清除屏幕
- echo ‘test content’:往控制台输出信息 echo ‘test content’ > test.txt
- ll :将当前目录下的 子文件&子目录平铺在控制台
- find 目录名: 将对应目录下的子孙文件&子孙目录平铺在控制台
- find 目录名 -type f :将对应目录下的文件平铺在控制台
- rm 文件名 : 删除文件
- mv 源文件 重命名文件: 重命名
- cat 文件的 url : 查看对应文件的内容
- vim 文件的 url(在英文模式下)
- 按 i 进插入模式 进行文件的编辑
- 按 esc 键&按:键 进行命令的执行
- q! 强制退出(不保存)
- wq 保存退出
- set nu 设置行号
配置
- git config --global user.name “danmo” :配用户名
- git config --global user.email danmo@example.com:配邮箱地址
- git config --list:检查配置信息
- git config --global --unset user.email:删除配置信息
git底层命令
git对象
- git hash-object -w fileUrl :
生成一个key(hash值):val(压缩后的文件内容)键值对存到.git/objects
tree对象
- git update-index --add --cacheinfo 100644 hash test.txt :
往暂存区添加一条记录(让git对象 对应 上文件名)存到.git/index
文件模式为 100644,表明这是一个普通文件
100755,表示一个可执行文件;
120000,表示一个符号链接。
- git write-tree : 生成树对象存到.git/objects
commit对象
- echo ‘first commit’ | git commit-tree treehash : 生成一个提交对象存到.git/objects
对以上对象的查询
- git cat-file -p hash : 拿对应对象的内容
- git cat-file -t hash : 拿对应对象的类型
git高层命令
CRUD
- git init: 初始化仓库
- git status: 查看文件的状态
- git diff: 查看哪些修改还没有暂存
git diff --staged: 查看哪些修改已经被暂存了 还没提交 - git log --oneline: 查看提交的历史记录
- git add ./: 将修改添加到暂存区
- git rm 文件名: 删除工作目录中对应的文件 再将修改添加到暂存区
- git mv 原文件名 新文件名: 将工作目录中的文件进行重命名 再将修改添加到暂存区
- git commit
git commit -a (-a只能用于已跟踪过的文件)
git commit -a -m “注释” : 将暂存区提交到版本库
分支
分支
- git branch: 显示分支列表
- git branch 分支名: 创建分支
- git branch -b 分支名: 创建分支,并且切换过去
- git checkout 分支名: 切换分支
切换分支的坑:(第一次提交之前)在切换分支之前,要先确保状态“干净”(全部commit),否则会污染其它分支。
- git branch -D 分支名: 强制删除分支(不能自己删自己,删除前要切换到别的分支)
- git log --oneline --decorate --graph --all:查看项目分叉历史
- git config --global alias.别名 “原指令” :配别名
- git branch -v: 可以查看每一个分支的最后一次提交
- git branch name commitHash(commit对象的hash):新建一个分支并且使分支指向对应的提交对象(但是此时分支还没有切过去,得再用git checkout)
合并
- git merge 分支名:合并分支(会将这个分支合并到现在所处的分支内)
- git branch –merged:查看哪些分支已经合并到当前分支
- git branch --no-merged:查看所有包含未合并工作的分支
储存
- git stash:将未完成的修改保存到一个栈上
- git stash list:查看存储
- git stash apply 储藏的名字:应用储藏(储藏的名字用git stash list可以查看)
如果不指定一个储藏,Git 认为指定的是最近的储藏 - git stash drop 将要移除的储藏的名字:从栈上移除储藏
- git stash pop 储藏的名字?:应用储藏然后立即从栈上扔掉它
相当于apply和drop的结合,多用。
后悔药
- git checkout --文件名:将在工作目录中对文件的修改撤销(任何修改都会消失)
- git reset HEAD 文件名:将文件从暂存区中撤回到工作目录。
- git commit –amend:修改提交的注释。
如果你提交后发现忘记了暂存某些需要的修改,可以像下面这样操作:
git commit -m 'initial commit'
git add forgotten_file
git commit –amend
最终你只会有一个提交 - 第二次提交将代替第一次提交的结果。
reset三部曲
- git reset --soft HEAD~ :版本库切回到上一个版本。
- git reset [–mixed] HEAD~ :切换版本库的同时,切回上一个暂存区。
- git reset --hard HEAD~:切换版本库的同时,切回上一个暂存区,还切回上一个工作区。