0%

Git rm删除文件

从版本库中删除该文件,那就用命令git rm删掉,并且git commit

1
2
3
4
$ git rm file

$ git commit -m "remove file"

现在,文件就从版本库中被删除了。

如果删错了,因为版本库里还有呢,所以可以很轻松地把误删的文件恢复到最新版本:

1
$ git checkout -- test.txt

git checkout其实是用版本库里的版本替换工作区的版本,无论工作区是修改还是删除,都可以“一键还原”。

还有一种情况是如何从版本库中删除,而不删除本地文件:

对于单个文件:

1
$ git rm --cached mylogfile.log

对于单个目录:

1
$ git rm --cached -r mydirectory

git rm和rm的区别

直接在工作区删除文件对暂存区和版本库没有影响,但是如果使用git rm命令删除文件,那么删除动作将加入暂存区,这时执行提交命令,就从真正意义上执行了文件删除。不过,不要担心,文件只是在版本库的最新提交中被删除了,在历史提交中尚在。

git push存在大文件报错

git push 时,存在大文件会报错,即使删除大文件后,还会报错。主要是因为大文件存在没有被提交的commit记录里面。

解决方案:删除有大文件的commit记录即可

1、git status 查看未被传送到远程代码库的提交状态

2、git cherry -v 查看未被传送到远程代码库的提交描述和说明

3、git reset commit_id 撤销未被传送到远程代码库的提交

移除大文件:

1
2
3
4
$ git rm --cached giant_file(文件名) 
# Stage our giant file for removal, but leave it on disk
$ git commit --amend
$ git push

Singularity 镜像无法更新

在编译的时候碰到的问题为:https://registry-1.docker.io io timeout

很明显就是国外的docker仓库无法使用,这是就需要指定国内的镜像即可解决。

如下,把下面的内容更改为国内的镜像即可。

1
From: ubuntu:16.04

修改为:

1
From: hub-mirror.c.163.com/library/ubuntu:16.04

或者

1
From: docker.mirrors.ustc.edu.cn/library/ubuntu:16.04

Git中文件的状态

1
2
3
4
$ git stash
保存工作目录和索引状态 WIP on master: b9a733eff make python3 compatible
错误:unable to create symlink filename: File name too long
错误:unable to create symlink filename: File name too long

解决方法:

1
$ git config --global core.symlinks false

探索网络连接的netstat

在Linux系统中,网络是至关重要的部分,而netstat命令是管理和监视网络连接的强大工具之一。

它提供了关于网络接口和路由表的详细信息,有助于了解网络连接状态、统计信息以及网络协议的使用情况。

也更方便我们对网络的管理、故障排除以及安全监控等等。

基本概述

netstat命令比较简单,通过简单的参数组合,可以获得各种网络相关的信息。

以下是一些常用的参数及其功能:

  • -a:显示所有连接和监听端口。
  • -t:仅显示TCP连接。
  • -u:仅显示UDP连接。
  • -n:以数字形式显示地址和端口号。
  • -p:显示进程标识符和程序名称。
  • -r:显示路由表。
  • -s:显示统计信息。

Windows定时关机

使用Win+R呼出运行对话框,输入一下命令即可:

1
$ shutdown -s -t xxxx

其中xxxx为希望的秒数,比如shutdown -s -t 60 将在60秒即1分钟后关机。

取消关机

可以输入shutdown -a取消关机

Windows下使用Ubuntu

目前Ubuntu20.04和18.04可用,可以在Microsoft Store直接安装。

启动ubuntu报错 参考的对象类型不支持尝试的操作

解决方法如下: 以管理员身份打开Windows PowerShell, 然后执行netsh winsock reset, 重启电脑即可解决。

Win10中Vmmem程序资源占用过高解决办法

有个叫做Vmmem程序占用不少资源,此时可能是wsl引起的问题,解决方法为,在推出wsl以后,需要通过以下命令来shutdown

1
wsl --shutdown	

xfs文件系统无法mount

首先阐述一下碰到的问题,N年前做了一个高速记录系统,使用的为CentOS6.8的稳定系统,
在备份机上做了同样的系统,最近可能强迫症所致,更新了一下,导致软件版本不一致,
引起了文件系统无法挂载。

详细的信息如下:

1
2
3
4
5
# mount /dev/sdb /data/
mount: wrong fs type, bad option, bad superblock on /dev/sdb,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

查看一下日志,可以看到如下信息:

1
2
3
# dmesg | tail
XFS (sdb): bad version
XFS (sdb): SB validate failed

妥妥滴xfs的版本问题引起的无法挂载。

再深一步进行挖掘,自行创建一个xfs的文件系统进行分析:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# dd if=/dev/zero of=/var/tmp/dddddd.img bs=1024k seek=10240 count=1
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00263831 秒,397 MB/秒

# losetup /dev/loop0 /var/tmp/dddddd.img
# mkfs.xfs /dev/loop0
meta-data=/dev/loop0 isize=256 agcount=4, agsize=655424 blks
= sectsz=512 attr=2, projid32bit=0
data = bsize=4096 blocks=2621696, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
# echo "version" | xfs_db /dev/loop0
xfs_db> version
versionnum [0xb4a4+0xa] = V4,NLINK,ALIGN,DIRV2,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT
xfs_db> # xfs_db /dev/loop0
xfs_db> version
versionnum [0xb4a4+0xa] = V4,NLINK,ALIGN,DIRV2,LOGV2,EXTFLG,MOREBITS,ATTR2,LAZYSBCOUNT
xfs_db> quit

可以从versionnum [0xb4a4+0xa] 知道此时的版本为V4 或者-V参数知道此时安装xfs版本为3.1.1。

查看xfs版本

1
# mkfs.xfs -V

Aegean安装步骤

Aegean为MWA阵列的点源搜索软件,由Paul开发,网址为: https://github.com/PaulHancock/Aegean

1
2
3
4
5
6
7
8
# 稳定版
$ wget https://github.com/PaulHancock/Aegean/archive/v.2.2.0.tar.gz
$ tar zxvf v.2.2.0.tar.gz
$ cd Aegean-v.2.2.0
$ python3 setup.py build
$ sudo python3 setup.py install
# 最新版
$ pip3 install git+https://github.com/PaulHancock/Aegean.git