git环境部署代码和liux常用命令
一、测试环境部署项目常用命令:
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:合并出现冲突
①删除git自动标记符号,如<<<<<<< HEAD、>>>>>>>等
②修改到满意后,保存退出
③git add <file name>
④git commit -m "日志信息",此时后面不要带文件名
(二)本地库跟远程库交互:
git clone <远程库地址>:克隆远程库
功能:①完整的克隆远程库为本地库,②为本地库新建origin别名,③初始化本地库
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"