一, 测试环境部署项目常用命令:
1,SSH 账号名 @ip 端口号 #登录远程服务器
2, 登录 yun 账号: su -yun ccpdo su #切换 root 权限
3,cd 项目所在路径 #进入项目部署的路径
- Git status #查看 Git 状态
- Git branch #查看当前 Git 关联分支
Git branch -a |grep <分支名> #-a 显示所有分支 |grep 查找具体分支
Git checkout <分支名> #切换到要部署代码的分支上
- Git pull #拉下分支代码, 更新部署代码
- Git diff master --stat #对比当前切换的分支和 master 的区别(查看当前分支所含文件)
Git diff <文件名> #查看文件更新的内容
Git checkout master #检查 master 分支是否是最新的 , 如果不是需要拉下代码 Git pull
二, Git 相关知识详解:
Workspace: 工作区
Index / Stage: 暂存区
Repository: 仓库区(或本地仓库)
Remote: 远程仓库
(一)本地操作:
1. 其它
Git init: 初始化本地库
Git status: 查看工作区, 暂存区的状态
Git add <file name>: 将工作区的 "新建 / 修改" 添加到暂存区
Git rm --cached <file name>: 移除暂存区的修改
Git commit <file name>: 将暂存区的内容提交到本地库
tip: 需要再编辑提交日志, 比较麻烦, 建议用下面带参数的提交方法
Git commit -m "提交日志" <file name>: 文件从暂存区到本地库
2. 日志
Git log: 查看历史提交
tip: 空格向下翻页, b 向上翻页, q 退出
Git log --pretty=oneline: 以漂亮的一行显示, 包含全部哈希索引值
Git log --oneline: 以简洁的一行显示, 包含简洁哈希索引值
Git reflog: 以简洁的一行显示, 包含简洁哈希索引值, 同时显示移动到某个历史版本所需的步数
3. 版本控制
Git reset --hard 简洁 / 完整哈希索引值: 回到指定哈希值所对应的版本
Git reset --hard HEAD: 强制工作区, 暂存区, 本地库为当前 HEAD 指针所在的版本
Git reset --hard HEAD^: 后退一个版本
tip: 一个 ^ 表示回退一个版本
Git reset --hard HEAD~1: 后退一个版本
tip: 波浪线~ 后面的数字表示后退几个版本
4. 比较差异
Git diff: 比较工作区和暂存区的所有文件差异
Git diff <file name>: 比较工作区和暂存区的指定文件的差异
Git diff HEAD|HEAD^|HEAD~| 哈希索引值 <file name>: 比较工作区跟本地库的某个版本的指定文件的差异
5. 分支操作
Git branch -v: 查看所有分支
Git branch -d <分支名>: 删除本地分支
Git branch <分支名>: 新建分支
Git checkout <分支名>: 切换分支
Git merge <被合并分支名>: 合并分支
tip: 如 master 分支合并 hot_fix 分支, 那么当前必须处于 master 分支上, 然后执行 Git merge hot_fix 命令
tip2: 合并出现冲突
1删除 Git 自动标记符号, 如 <<<<<<<HEAD,>>>>>>> 等
2修改到满意后, 保存退出
3git add <file name>
4git commit -m "日志信息", 此时后面不要带文件名
(二)本地库跟远程库交互:
Git clone <远程库地址>: 克隆远程库
功能:1完整的克隆远程库为本地库,2为本地库新建 origin 别名,3初始化本地库
Git remote -v: 查看远程库地址别名
Git remote add <别名> <远程库地址>: 新建远程库地址别名
Git remote rm <别名>: 删除本地中远程库别名
Git push <别名> <分支名>: 本地库某个分支推送到远程库, 分支必须指定
Git pull <别名> <分支名>: 把远程库的修改拉取到本地
tip: 该命令包括 Git fetch,Git merge
Git fetch <远程库别名> <远程库分支名>: 抓取远程库的指定分支到本地, 但没有合并
Git merge <远程库别名 / 远程库分支名>: 将抓取下来的远程的分支, 跟当前所在分支进行合并
Git fork: 复制远程库
tip: 一般是外面团队的开发人员 fork 本团队项目, 然后进行开发, 之后外面团队发起 pull request, 然后本团队进行审核, 如无问题本团队进行 merge(合并)到团队自己的远程库, 整个流程就是本团队跟外面团队的协同开发流程, Linux 的团队开发成员即为这种工作方式.
三, 常用的 Linux 命令
cd 路径 #进入指定目录
cd ../ 目标路径 #进入当前目录上一级下的指定目录
rm -rf ./* #删除当前目录下的所有文件夹和文件
rm -rf 路径文件 #删除指定文件或文件夹
- ll #显示所有文件信息
- ls -lh #显示当前目录下所有文件的包括大小等信息
- du -sh #统计当前目录所有文件和文件夹的总的大小
VIM 路径文件 #编辑指定文件 i,o 切换为编辑状态, esc 退出编辑状态,:wq 保存退出
- find . -type f -name "store*" #查找当前目录下文件名含有指定字符串的文件
- find . -type d -name "bj*" #查找当前路径下目录名含指定字符串的文件夹
查找当前目录下, 包含 "Hello" 字符串的所有文件:
- grep - rn "hello" ./ #方法一: r 表示递归, n 表示查询结果显示行号
- find ./ -name "*.*" | xargs grep "Hello" #方法二
- # 方法三: 如果不知道文件所在的大致目录, 知道文件的类型(例如文本类型 txt), 可以在 root 根目录 / 下根据特定字符串进行查找: find / -type f -name "*.txt" | xargs grep "Hello"
来源: http://www.bubuko.com/infodetail-3508268.html