在开发过程中,会使用越来越多的命令,或快捷键,来帮助我们提高工作效率。本文记录了我在平时积累的常用命令,分享给大家。

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

看似达到的效果是一样的,其实完全不同.

  1. 上面我们说的如果你已经push到线上代码库, reset 删除指定commit以后,你git push可能导致一大堆冲突.但是revert 并不会.
  2. 如果在日后现有分支和历史分支需要合并的时候,reset 恢复部分的代码依然会出现在历史分支里.但是revert 方向提交的commit 并不会出现在历史分支里.
  3. 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命令快捷键总结(持续更新)的更多相关文章

  1. Linux三剑客命令使用(持续更新)

    (本文档内容部分来源于网络) awk删除文件第一列 1.采用awk awk '{$1="";print $0}' file 2.采用sed sed -e 's/[^]* //' f ...

  2. day 2克隆虚拟机器minimal需要注意的问题和制作本地yum源和常用的Linux的命令

    ------- 克隆bee2 PS:因为复制机器后,又多了一个网卡eth1.本来只有一个网卡eth0,下面是解决方案. 解决克隆后eth0不见的问题 1.直接修改vi  /etc/sysconfig/ ...

  3. 常用的Linux系统调用命令

    常用的Linux系统调用命令   下面一些函数已经过时,被新的更好的函数所代替了(gcc在链接这些函数时会发出警告),但因为兼容的原因还保留着,这些函数将在前面标上“*”号以示区别.   一.进程控制 ...

  4. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  5. Arch Linux + KDE 配置&美化(持续更新~)

    Arch Linux + KDE 配置&美化(持续更新~) 这篇文章着重记录archlinux + KDE的一个基本的配置过程.不包括安装过程(使用archInstall.sh).内容大概有以 ...

  6. [转帖]各种命令,以及FAQ..持续更新.....

    各种命令,以及FAQ..持续更新..... https://www.cnblogs.com/jicki/p/5548668.html Linux 篇: CentOs 7 修改主机名 hostnamec ...

  7. IOS开发常用的linux命令

    pwd 在Linux层次结构中,用户可以在被授权的任意目录下利用mkdir命令创建新目录,也可以利用cd命令从一个目录转换到另一个目录.然而,没有提示符来告知用户目前处于哪一个目录中.想要知道当前所处 ...

  8. 嵌入式Linux开发教程:Linux常见命令(上篇)

    摘要:这是对周立功编著的<嵌入式Linux开发教程>的第7期连载.本期刊载内容有关LinuxLinux常见命令中的导航命令.目录命令和文件命令.下一期将连载网络操作命令.安装卸载文件系统等 ...

  9. 使用配置hadoop中常用的Linux(ubuntu)命令

    生成key: $ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa $ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized ...

随机推荐

  1. Flask中获取参数(路径,查询,请求体,请求头)

    上一篇中已经讲述了:HTTP协议向服务器传参有几种途径{ 链接 } 在Flask中同样通过这4中传参途径进行归纳: 1. URL中路径参数的获取: 拓展: # 路由参数/路径参数:http://127 ...

  2. selenium-server-standalone下载网站

    http://selenium-release.storage.googleapis.com/index.html

  3. 【RTOS】为H7配套的uCOS-III模板也是可以用于MDK AC6的,提供个模板

    AC6模板 链接:https://pan.baidu.com/s/1_4z_Lg51jMT87RrRM6Qs3g   提取码:2gns 原始的这个模板直接修改为AC6: 编译有几十处警告,修改下面三个 ...

  4. MySQL常用SQL语句总结

    1.with rollup 可以实现在分组统计数据基础上再进行相同的统计 SELECT name, SUM(score) as score_count FROM  score GROUP BY nam ...

  5. javascript中的定时器入门

    JavaScript提供定时器(timer)的功能,可以延期执行或重复执行函数或代码段. window对象提供了三个方法来实现定时器的效果,分别是setTimeout().setInternal()和 ...

  6. Java题库——Chapter6 一维数组

    1)What is the representation of the third element in an array called a? 1) _______ A)a(3) B) a(2) C) ...

  7. 微软、IBM、GitLab 等大厂全部到齐的 OCS 第一天有什么看点?

    在本周一的推文中我们大致介绍了下 Open Core 峰会及到场嘉宾,(≧▽≦) 当然还有 Nebula Graph 在会场的展位位置图,本文我们来看看 Open Core 峰会第一天有哪些值得一看的 ...

  8. APC的本质

     Windows内核分析索引目录:https://www.cnblogs.com/onetrainee/p/11675224.html APC的本质 一.对于线程关闭问题的启发 线程,本身占据CPU, ...

  9. c++ LeetCode (网易面试题和链表以及树篇) 五道算法例题代码详解(三)

    原文作者:aircraft 原文链接:https://www.cnblogs.com/DOMLX/p/11209807.html 一.1道网易c++的面试题 我当时第一时间的解答方案 #include ...

  10. 周会材料:高并发程序设计<二>

    第三章 JDK并发包https://www.cnblogs.com/sean-zeng/p/11957569.html JDK内部提供了大量实用的API和框架.本章主要介绍这些JDK内部功能,主要分为 ...