开发常用Git/Linux/idea命令快捷键总结(持续更新)
在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率。本文记录了我在平时积累的常用命令,分享给大家。
git命令
基本命令
set LESSCHARSET=utf-8 --idea Terminal乱码(idea自带的操作git窗口)
git clone 分支名 --将分支克隆到本地
git stash --将修改暂时放到暂存区
git stash pop --从暂存区弹出
git checkout 分支名或文件名 --切换到分支
git pull --拉取最新文件(更新)
git add 文件名 --添加文件(用于提交)
git commit -m "提交备注信息" --提交文件
git push --推送到远程分支
//这三个通常一起使用
添加了多余文件后,已经add未commit时撤销添加
git reset HEAD 文件名 --撤销某文件
git reset HEAD --全撤销
已经commit还未push时,回退版本号
git reset --mixed 要回退到哪个版本号(本地代码还保留着)
git reset --hard 要回退到哪个版本号(本地代码不保留)
注意是两个短线
push后回退撤销
对于已经把代码push到线上仓库,你回退本地代码其实也想同时回退线上代码,回滚到某个指定的版本,线上,线下代码保持一致.你要用revert命令
git revert用于反转提交,执行revert命令时要求工作树必须是干净的.
git revert用一个新提交来消除一个历史提交所做的任何修改.
revert 之后你的本地代码会回滚到指定的历史版本,这时你再 git push 既可以把线上的代码更新.(这里不会像reset造成冲突的问题)
revert 使用,需要先找到你想回滚版本唯一的commit标识代码,可以用 git log 或者在adgit搭建的web环境历史提交记录里查看.
git revert c011eb3c20ba6fb38cc94fe5a8dda366a3990c61
通常,前几位即可
git revert c011eb3
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit
看似达到的效果是一样的,其实完全不同.
- 上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
- 如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
- reset 是在正常的commit历史中,删除了指定的commit,这时 HEAD 是向后移动了,而 revert 是在正常的commit历史中再commit一次,只不过是反向提交,他的 HEAD 是一直向前的.
alias简化git命令
git config --global alias.别名 原始命令
如:
git config --global alias.st status
git config --global alias.ck checkout
git config --global alias.ct commit
查看提交日志记录
一般情况下:
1、git log --查看所有提交log
2、git log --author 用户名 --查询某用户提交记录
效果:
3、git log --author 用户名 --grep "关键词" 显示某个用户提交的,含有某关键词的记录
效果:
4、--oneline简化显示 在3的基础上简化,只显示一行,版本号简化
效果:
5.git log --author "git用户名" --reverse --oneline
翻转显示,之前是按时间从早到晚,使用这个参数正好颠倒
6、格式化log日志中的时间
默认是这样的
月份和星期是英文缩写,不容易看
我们可以调一下,有如下两个命令可参考:
git config log.date iso-local 执行后时间变成这样: 2018-11-03 03:30:04 +0000
git config log.date iso-strict-local 执行后时间变成这样: 2018-11-03T03:30:04+00:00
7、复杂点的
git log --graph --pretty=format:'%Cred%h%Creset - %C(yellow)%d%Creset %s %Cgreen(%cr) %C(blue)<%an>%Creset' --abbrev-commit --date=relative
效果:其实在idea也能看到这样的提交记录,底层也都是用的git的命令
Git查看仓库地址
我们的代码仓库多了,或者用的时间长了,很长时间没有clone过了,很容易忘了clone的URL,这时候我们可以用这个命令
git remote -v
查看到当前仓库的URL
linux命令
作为后台开发,懂点基本的Linux命令是必不可少的。
创建目录,切换目录,查找,删除目录、文件、ping、telnet等。
find /home/nc/page/thrage -name *index.html* -d 查找这个目录下的 文件名以某某开头的 文件全路径(-d是列出路径)
ps -ef|grep "java" --查看java进程是否存在
netstat -tunlp|grep 端口号,用于查看指定端口号的进程情况
idea快捷键
Ctrl + Alt + L 代码格式化
Ctrl + Alt + O 优化导包
Ctrl + N 查找类
Ctrl + Shift + N 查找类
Alt + insert 生成常用代码
Ctrl + Shift + Space 自动补全代码
Ctrl + Space 代码提示
Ctrl + P 方法参数提示
更多:
IntelliJ IDEA代码常用的快捷键(自查)
解决百度网盘下载慢限速问题(2019亲测可用)
Java类是如何默认继承Object的?
开发常用Git/Linux/idea命令快捷键总结(持续更新)
java 金额数字转换大写算法
开发常用Git/Linux/idea命令快捷键总结(持续更新)的更多相关文章
- Linux三剑客命令使用(持续更新)
(本文档内容部分来源于网络) awk删除文件第一列 1.采用awk awk '{$1="";print $0}' file 2.采用sed sed -e 's/[^]* //' f ...
- day 2克隆虚拟机器minimal需要注意的问题和制作本地yum源和常用的Linux的命令
------- 克隆bee2 PS:因为复制机器后,又多了一个网卡eth1.本来只有一个网卡eth0,下面是解决方案. 解决克隆后eth0不见的问题 1.直接修改vi /etc/sysconfig/ ...
- 常用的Linux系统调用命令
常用的Linux系统调用命令 下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别. 一.进程控制 ...
- 常用的linux基础命令
常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...
- Arch Linux + KDE 配置&美化(持续更新~)
Arch Linux + KDE 配置&美化(持续更新~) 这篇文章着重记录archlinux + KDE的一个基本的配置过程.不包括安装过程(使用archInstall.sh).内容大概有以 ...
- [转帖]各种命令,以及FAQ..持续更新.....
各种命令,以及FAQ..持续更新..... https://www.cnblogs.com/jicki/p/5548668.html Linux 篇: CentOs 7 修改主机名 hostnamec ...
- IOS开发常用的linux命令
pwd 在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处 ...
- 嵌入式Linux开发教程:Linux常见命令(上篇)
摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...
- 使用配置hadoop中常用的Linux(ubuntu)命令
生成key: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized ...
随机推荐
- JMeter系列教程
认识JMeter工具 JMeter常用元件功能介绍 JMeter线程组 JMeter脚本三种录制方法 Jmeter组件介绍及其作用域和执行顺序 JMeter参数化 JMeter集合点 JMeter关联 ...
- Git入门基础教程
目录 一.Git的安装 1.1 图形化界面 1.2 命令行界面 二.本地仓库的创建与提交 2.1 图形化界面 2.1.1 首先在电脑上有一个空白目录 2.1.2 打开SourceTree 2.1.3 ...
- 使用hutool进行二维码制作
2.在IDEA中使用代码块生成二维码
- openpyxl基本操作
参考资料:OpenPyXL的使用教程(一) openpyxl 基本操作 # 创建xml from openpyxl import Workbook # 创建工作簿 wb = Workbook() # ...
- C++ std::list 和 std::forward_list 的差别及其成员函数差异对比
主要差别: list 是双向链表,forward_list 是双向链表. 成员函数差异: 函数名 list forward_list back() has no size() has no inser ...
- Mybatis----resultMap类型详解
Mybatis----resultMap类型详解 这篇文章主要给大家介绍了关于Mybatis中强大的resultMap功能的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mybatis具 ...
- 剑指Offer-42.和为S的两个数字(C++/Java)
题目: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 分析: ...
- 《Netty Redis Zookeeper 高并发实战》 勘误
<Netty Redis Zookeeper 高并发实战> 勘误与申明 疯狂创客圈 Java 高并发[ 亿级流量聊天室实战]实战系列 [博客园总入口 ] 勘误一 文字问题: Page1 J ...
- np.array()和np.dot()的区别
1.生成数组的方式不同 2.乘法计算方式不同 array生成数组,np.dot()表示矩阵乘积,(*)号或np.multiply()表示点乘 mat生成数组,(*)和np.dot()表示矩阵相乘,点乘 ...
- 【开发工具】IDEA简明使用指南
目录 1. 搭建idea的开发环境 2. 调试技巧 3. 常用快捷键(小技巧) 4. 插件推荐 工欲善其事,必先利其器.在Java开发中挑选一款好的Ide环境能大大提升我们的开发效率,IntelliJ ...