Git
git 通过:图形界面shell、命令行shell,使用shell
bash属于shell,Linux默认使用bash
常见bash命令
命令 | 功能 |
---|---|
pwd | 显示当前路径 |
ls,ls -a | 目录列表,-a包含隐藏文件 |
cd | 切换 |
mkdir | 创建目录 |
touch | 创建文件 |
rm, rmdir | 删除文件,删除目录 |
cat,head -n 5,tail | 查看文件,前几行,后几行 |
cp | 复制文件 |
mv | 移动文件 |
curl | 网络请求 |
tar | 解压缩 |
netstat -a | 查看端口号 |
vi 编辑器
三种模式
打开/创建文件 vi + 文件路径
- 命令模式
- 输入模式(编辑模式)
- 底行模式(末行模式)
- 命令模式: i o O a A ===> 输入模式
dd: 删除当前行
yy: 复制当前行
p: 黏贴内容
u: 撤销回上一步
ZZ: 保存并退出
ctrl+f: 向前翻页
ctrl+b: 向后翻页
- 底行模式: w: 保存 q: 退出 wq: 保存退出 q!: 不保存强制退出 e!: 撤销更改,返回上一次保存的状态 set nu: 设置行号(esc退出)
远程登录
除了登录自己电脑之外的所有服务器都叫远程登录
- 使用ssh登录 SSH是一种网络服务协议
版本控制
- 本地版本控制系统
- 集中版本控制系统
- 分布式版本控制系统
Git工作原理
gitignore 创建忽略文件:将不需要提交的文件名放到这个目录中,将来提交的时候就不会将其提交上去
- 工作目录
- 暂缓区域
- 远程仓库
命令 | 功能 |
---|---|
git fetch | 只是更新到本地仓库,代码不会体现到相应的工作目录中,需要merge 一下 |
git pull | 拉取所有分支 |
git config | 初始化配置 |
git init | 初始化仓库 |
git clone | 克隆 |
git add ./-A | 添加 |
git commit -m '' | 备注 |
git push | 推送 |
git status | 查看状态 |
git branch [-a] | 查看分支【本地+远程】 |
git diff '文件' | 比较修改部分 |
git log, git reflog | 历史,未来所有历史 |
git checkout branch/git checkout SHA -- "某个文件" | 切换分支/从SHA这个版中取出特定的文件(不会重写历史) |
git checkout HEAD~2 文件名 | 把倒数第二次的该文件的提交放到暂存区 |
git reset --hard '' | 工作区会变 暂缓区会变 历史会变(会重写历史) |
git reset --soft '' | 只改变历史 |
git reset --mixed(默认) | 工作区不会变, 历史改变, 暂存区改变 |
git reset 文件名 | 只能将暂存区的文件重置到工作区 |
git reset HEAD~2 文件名 | 把倒数第二次的该文件的提交放到暂存区 |
git revert commitId | 回退到某一次提交,且会生成一次新的提交记录 |
git reset HEAD~2 | 回退到两次提交前(默认:工作区不受影响,暂存区更新为指定提交)(最好用于撤销私有分支的变更) |
git checkout HEAD~2 | 移动HEAD指针到指定提交(暂存区和工作区都清空) |
git revert HEAD~2 | 撤销公共分支的变更,创建一个新的提交来撤销这些内容,不会改变已有提交历史 |
git branch -d '文件名' | 删除本地分支 |
git push origin --delete '文件名' | 删除远程分支 |
git stash | 放入暂存区 |
git stash pop/git stash apply(git stash drop) | 从暂存区取出 |
git rebase | 合并多个提交 |