开发常用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 ...
随机推荐
- PyCharm 快捷键失效解决办法
PyCharm快捷键用着用着失效了 ......修改设置如下 重新启动Pycharm即可 原博客地址:https://blog.csdn.net/jacke121/article/details/82 ...
- VS2017初学者如何打开右侧的解决方案资源管理器
- go 语言 搭建 图片上传 服务器
工具: LiteIDE 配置: 代码:list.html <!doctype html> <html> <head> <meta charset=" ...
- JS数组去除空值
/** * 扩展Array方法, 去除数组中空白数据 */ Array.prototype.notempty = function() { var arr = []; this.map(functio ...
- [译]Vulkan教程(30)深度缓存
[译]Vulkan教程(30)深度缓存 Depth buffering 深度缓存 Introduction 入门 The geometry we've worked with so far is pr ...
- Exe4j 打包: this executable was created with an evaluation version of exe4j
异常 this executable was created with an evaluation version of exe4j 异常.png 问题原因 当前打包使用exe4j未授权 解决方法 ...
- java8-CompleableFuture的使用1
背景 硬件的极速发展,多核心CPU司空见惯:分布式的软件架构司空见惯: 功能API大多采用混聚的方式把基础服务的内容链接在一起,方便用户生活. 抛出了两个问题: 如何发挥多核能力: 切分大型任务,让每 ...
- 【algo&ds】6.图及其存储结构、遍历
1.什么是图 图表示"多对多"的关系 包含 一组顶点:通常用 V(Vertex)表示顶点集合 一组边:通常用 E(Edge)表示边的集合 边是顶点对:(v,w)∈ E,其中 v,w ...
- Java入门总结
1. 一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致: 使用javac可以将.java源码编译成.class字节码: 使用java可以运行一个已编译的J ...
- CentOS7升级OpenSSL版本
1.CentOS7.6默认安装的openssl版本为 # 查看openssl版本 openssl version 2.下载最新的openssl wget https://www.openssl.org ...