oh my zsh 常用插件的常用命令

Ubuntu:

agi: 安装包

agp: 删除包和配置文件

agu: 更新本地包索引文件

agug: 更新所有包

git:

gaa	
#git add --all 添加所有修改到暂存区

gcam
# git commit -a -m 添加注释 比如 gcam "update"

gp
# git push 提交

systemd:

  • sc-start (即 sudo systemctl start 下同)
  • sc-stop
  • sc-reload
  • sc-restart
  • sc-status

arch linux:

  • pacin (sudo pacman -S)安装软件包
  • pacreps (pacman -Ss) 搜索软件包
  • pacre (sudo pacman -R) 删除软件包
  • pacrem (sudo pacman -Rns) 删除软件包包括依赖和配置文件
  • pacupg (sudo pacman -Syu)更新所有软件包

dnf:

  • dnfi 安装包
  • dnfgi 安装组包
  • dnfr 删除包
  • dnfu 更新包
  • dnfs 搜索包

git commit注释内添加日期

git commit -m "`date`" # Wed Aug 28 10:22:06 CST 2019
git commit -m "`date +'%Y-%m-%d'`" # 2019-08-28
git commit -m "Updated: `date +'%Y-%m-%d %H:%M:%S'`" # Updated: 2019-08-28 10:22:06
current="`date +'%Y-%m-%d %H:%M:%S'`"
msg="Updated: $current"
git commit -m "$msg" # Updated: 2019-08-28 10:22:06

git commit警告 LF will be replaced by CRLF

之前在使用git时就经常遇到这样的报错,起初并没有太在意,并没有影响到工作,但是今天在进行仓库分离的时候,使用jekyll build编译网站的时候

如上图,满屏幕的warning,一看到warning都不舒服的我看到这么多warning瞬间都起鸡皮疙瘩了,于是google了一下,整理出如下内容

一、CR、LF、CRLF之间的关系

其实这是一个历史原因,有兴趣的同学可以google一下,这里只简要说一下他们之间的关系

这三种都是三类系统中对于回车换行的含义:

Linux/Unix  > Line Feed       > LF > 换行
Mac         > Carriage Return > CR > 回车
Windows/Dos > CR LF  > 回车 换行

所以windows的换行符是CRLF,正如我在写这篇文章的时候,vscode的右下角已经标出这个使用CRLF换行

也就说,你在windows系统上创建的文件都是CRLF换行的,但是我在使用bash命令生成文件时,bash是GNU shell啊,GNU又是类UNIX啊,所以追踪溯源,他生成的文件肯定是LF换行的。

但是这里其实也是很奇怪的,git起初也是linux上专属的,但是人家挺有责任心的,你在windows上运行我,我就有义务给你把LF换成你的CRLF,故此就生出这满屏幕的wraning了。

二、如何关闭这个警告

其实很简单,我们只需要在git bash中执行

git config --global core.autocrlf false

这样就把他的自动转换关闭了。

但是这是不需要担心的,因为现在的各种IDE都支持多种换行风格,即使在windows系统中也能正常显示LF换行的文件。

(完)

Git常用命令

首先我们要生成SSH

 $ ssh-keygen -t rsa -C "email@mail.com"

将生成的文件夹下的.ssh/id_rsa.pub文件里的内容复制到SSH keys

设置用户名和邮箱

$ git config --global user.name "username"
$ git config --global user.email "email@mail.com"

初始化当前目录的项目

git init

在项目的根目录会生成.git文件夹

在该项目文件夹下新建一个文件,然后把该文件送到暂存区

echo "# test" >> README.md
git add .  //将工作区所有修改添加到暂存区
git add filename //将指定文件添加到暂存区
git status  //列出变更文件

将暂存区修改添加到本地仓库

git commit -m '备注信息'

添加远程仓库,并将上述改动push到远程仓库

git remote add origin https://github.com/username/test.git
git push -u origin master

一般情况下,自己的项目都是添加ssh连接

git remote rm origin   //移除之前添加的origin
git remote add origin git@github.com:username/test.git       //使用ssh添加新的origin

放弃暂存区修改

git checkout -- filename  //放弃暂存区修改(修改不在)
git rm --cached filename  //放弃add(修改还在,但产生一条delete记录)
git reset HEAD filename   //同上(没有delete记录)
git stash     //暂时放弃未提交的修改
git stash pop  //恢复

分支操作

/*查看分支*/
git branch     //所有本地分支
git branch -r  //所有远程分支
git branch -a  //所有远程分支和本地分支
/*创建分支*/
git branch branchName     //留在当前分支
git checkout -b branchName   //创建并切换分支
git branch --set-upstream-to=<remote>/branchName  //建立本地分支与远程分支的追踪关系
git branch --track branchName  [remote branch]   //新建一个分支,并与远程建立追踪关系
git checkout branchName  //切到指定分支
/*分支合并*/
git pull origin branch   //取回远程更新并与本地分支合并
git fetch origin branch //取回远程更新
git merge branch  //合并指定分支到当前分支(产生提交记录)
git rebase branch  //合并指定分支到当前分支(不产生提交记录,比较适合有强迫症的)
git cherry-pick commitId  //将与commitId对应的提交合进当前分支