常用命令第一篇
1.0 目前常用git命令
1.1 git clean
git clean -df . // 清除未跟踪的文件和目录,并且不会删除已经被Git跟踪的文件。
git clean -dxf ./ // 用于清除未跟踪的文件和目录,并且强制删除已经被Git忽略的文件。
1.2 git checkout
git checkout . // 撤销当前工作目录中所有已修改但尚未提交的文件,将它们恢复到与最近一次提交时相同的状态。
git checkout branchName // 切换到branchName 分支下
git checkout -b branchName // 创建并切换至新分支branchName
git checkout - // 切换到前一个分支
1.3 git reset
三个恢复等级
--soft:仅将头指针恢复,已经add的暂存区及工作空间的代码都不变。
--mixed:将头恢复掉,已经add的暂存区也会丢失掉,工作空间代码不变。
--hard:一切就全都恢复了,头变,aad的暂存区消失,代码恢复到以前状态。
eg:
git reset --hard <commit-ID> // 回退到某一次的commit提交
1.4 git diff
git diff 查看文件或分支之间的差异
git diff <filename> --staged // 查看工作区与暂存区的差异(默认为--staged)
git diff --cached // 查看暂存区与仓库区(当前 commit) 的差异
git diff <commitBefore> <commitAfter> // 查看两个commit的差异
git diff <commit> // 查看工作区与某个 commit 的差异(上一次commit:HEAD)
git diff [first-branch]...[second-branch] // 显示两次提交之间的差异
git diff HEAD -- ./test // 查看工作区与当前分支上一次提交的差异,但是局限于test文件
git diff topic master // 查看topic分支与master分支最新提交之间的差异
1.5 git status
git status是用于查看工作目录和暂存区当前状态的核心命令。
git status -s // 精简输出
例如结果为:MM welocme
第一列字符表示版本库与暂存区之间的比较状态。
第二列字符表示暂存区与工作区之间的比较状态。
含义
' ' (空格)表示文件未发生更改
M 表示文件发生改动。
A 表示新增文件。
D 表示删除文件。
R 表示重命名。
C 表示复制。
U 表示更新但未合并。
? 表示未跟踪文件。
! 表示忽略文件。
未跟踪和忽略文件会显示相同的两列,如 ??。
git status // 非精简输出,看提示
git status -uno // 不显示未跟踪文件(如临时文件、日志等),使输出更干净。
git status -uall // 显示所有未跟踪文件的详细信息
1.6 git log
git log //默认的查看log信息
1.7 常用命令组合
1.7.1 git status + git clean -n
通过先使用 git status 查看工作目录的状态,然后再使用 git clean -n 进行试运行,可以确保在执行清理操作之前对将要删除的文件有清晰的了解,避免误删重要文件。
# 显示工作目录的状态
git status
# 执行试运行,查看将要删除的文件列表
git clean -n
1.7.2 git reset --hard + git clean -f
通过先使用 git reset --hard <commit-hash> 恢复到指定的提交状态,然后再使用 git clean -f 删除未跟踪文件,可以实现清理工作目录并恢复到指定提交状态的效果。commit-hash为提交后的hash值。
# 撤销之前的提交,同时清除未跟踪文件
git reset --hard <commit-hash>
# 执行清理操作,删除未跟踪文件
git clean -f
1.7.3 git checkout + git clean -f
通过先使用 git checkout <branch-name> 切换到指定分支,然后再使用 git clean -f 删除未跟踪文件,可以确保在切换分支时清理工作目录,避免未跟踪文件对新分支的影响。
# 切换到指定分支,同时清除未跟踪文件
git checkout <branch-name>
# 执行清理操作,删除未跟踪文件
git clean -f
个人使用过的组合,git clean -df . 与 git checkout . ,以及 git checkout . ,git reset --hard等。
# 清除未跟踪的文件和目录, 撤销当前工作目录中所有已修改但尚未提交的文件,将它们恢复到与最近一次提交时相同的状态。
git clean -df .
git checkout .
# 清除未跟踪的文件和目录, 将当前的工作目录重置为指定的提交(commit),并丢弃所有未提交的修改。如果没有指定一个具体的提交,那么默# 认将会重置到最新的提交。这个操作是不可逆的,所以请谨慎操作。
git clean -df .
git reset --hard
2.0 目前常用Linux命令
2.1 grep
grep 条件匹配搜索
grep "linux" long.txt //搜索 long.txt 文件中的 “linux”一词,忽略大小写敏感性。
grep -c "linux" long.txt // 搜索 long.txt 文件中的 “linux”一词出现的次数。
grep -nr content // 从当前目录及子目录的文件内搜索content,显示行号
2.2 vim
编辑文件(vi vim)
vi 文件名 //打开需要编辑的文件
--进入后,操作界面有三种模式:命令模式(command mode)、插入模式(Insert mode)和底行模式(last line mode)
命令模式
-刚进入文件就是命令模式,通过方向键控制光标位置,
-使用命令"dd"删除当前整行
-使用命令"/字段"进行查找
-按"i"在光标所在字符前开始插入
-按"a"在光标所在字符后开始插入
-按"o"在光标所在行的下面另起一新行插入
-按":"进入底行模式
插入模式
-此时可以对文件内容进行编辑,左下角会显示 "-- 插入 --""
-按"ESC"进入底行模式
底行模式
-退出编辑: :q
-强制退出: :q!
-保存并退出: :wq
操作步骤示例
1.保存文件:按"ESC" -> 输入":" -> 输入"wq",回车 //保存并退出编辑
2.取消操作:按"ESC" -> 输入":" -> 输入"q!",回车 //撤销本次修改并退出编辑
补充
vim filename.txt +10 //打开文件并跳到第10行
vim -R /etc/passwd //以只读模式打开文件
2.3 find
find 在层次结构中搜索文件
find . -name "*.c" //将目前目录及其子目录下所有延伸档名是 c 的文件列出来
find . -type f //将目前目录其其下子目录中所有一般文件列出
find . -ctime -20 //将目前目录及其子目录下所有最近 20 天内更新过的文件列出
2.4 mkdir
mkdir dirName //创建目录dirName
mkdir -p xx/yy/dirName // 递归创建目录xx/yy/dirName
2.5 cd
cd // 进入根目录
cd - // 回退到上次的路径
cd .. // 进入父目录
2.6 pwd
pwd // 显示当前目录所在路径
2.7 mv
mv 移动或重命名文件
mv source_file destination_folder/ //将源文件移动到指定目录下
mv source_file_name destination_file_name // 将当前目录下的文件改名
2.8 cp
cp 复制命令
cp source destination 从源复制到目的
cp aaa.c bbb/vvv/ //将aaa.c文件复制到目录bbb/vvv下
cp aaa.c bbb/vvv/ccc.c //将aaa.c文件复制到目录bbb/vvv下, 且改名为ccc.c
cp -r a/ test/ //将当前路径下的a目录复制到test目录下
// -p 复制时保留属性 时间戳、文件权限 甚至所有权cp -p 源文件 目标目录
2.9 常用命令组合
# grep 配合vim 查找文件内容,内容为content,.../xx/yy为查找到的路径,n表示多少行
grep -nr content
vim .../xx/yy +n
# 递归复制目录文件, 作用为将指定目录下的oo文件,递归复制到当前目录下,且递归创建文件夹
mkdir -p xx/yy/zz/
cp ....xx/yy/zz/oo .
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架