Linux

CMD

msiexec /package 包文件 	运行msi包

powershell

  • vscode扩展批量复制迁移到新配置

在老配置下终端:

code --list-extensions > extensions.txt

把extensions.txt拖到新项目目录,输入命令:

Get-Content extensions.txt | ForEach-Object {
  code --install-extension $_ --profile "新配置文件名"
}

conda/python

conda源

conda config --add channels               添加源
conda config --remove-key channels        删除源
conda info                查看配置信息(源,包和环境储存位置等)

conda虚拟环境

conda env remove -n 环境名 #删除环境

pip虚拟环境


python -m venv 环境名	创建虚拟环境

环境名\Scripts\activate	激活虚拟环境

python.exe -m pip install --upgrade pip 	更新pip

pip freeze > requirements.txt  导出库名列表
pip install -r requirements.txt  按库名列表下载库

decativate		关闭虚拟环境

git

初始化仓库

创建本地仓库
git init 
拉取远程仓库

SSH

git clone git@github.com:用户名/仓库名.git  #配置了SSH密钥后可以使用,需要关VPN

HTTPS

git clone https://github.com/用户名/仓库名.git    #不稳定,可能连不上

工作流程

工作区——暂存区——提交(分支)是保存的三个层级,可逐级保存/撤销。

暂存
git add  <file/folder>  #提交修改到暂存区
git add  .     #提交当前目录所有修改到暂存区

git rm <file>    #删除文件,并将此操作视作"一次修改"提交到暂存区
git rm -r <folder> #删除文件夹

git mv <old> <new> #移动或重命名文件/夹,并将此操作视作"一次修改"提交到暂存区
提交
git commit -m  '说明信息'     # 提交暂存区修改给仓库
git commit --amend -m 'xxx'  # 合并上一次提交(用于反复修改,避免多条冗余记录)
git commit -am 'xxx'         # 将add和commit合为一步
撤销
git restore file     # 撤销工作区改动。回到暂存区的版本,
                       如果暂存区没有,则回到上次commit的版本 

git reset --soft        # 撤销上次提交,但不撤销暂存区
git reset --mixed       # 撤销上次提交,暂存区也是
git reset --hard        # 撤销上次提交,暂存,连带工作区回到上上个提交状态

管理分支

创建,删除,切换
git branch        # 列出本地分支(*标注的是现在位于的分支)

git branch 分支   # 创建新分支

git branch -d 分支   # 删除分支

git branch -m <新分支名> #分支改名
git checkout 分支
git switch 分支     # 切换到某个分支
git checkout -b 分支   #创建并切换到新分支
合并
git merge 分支     # 将当前分支与指定分支合并,产生新提交(新节点)

#合并规则:
   对比两分支与其共同的父节点。两分支不相交的的修改会被各自采纳;
   相交的修改会生成待解决冲突文本:

<<<<<<< HEAD
当前分支的内容
=======
被合并分支的内容
>>>>>>> feature
git rebase 分支  #将当前分支接到另一个分支末端

#拼接规则:
     父节点之后,当前分支的每次新提交逐一应用到目标分支的最新提交;
     进行多次合并判断,合并规则同merge,
     
     某次合并因冲突而终止时,手动解决后用
     git add <file>  将解决了冲突的文件传到暂存区;
     git rebase --continue 继续下次提交与合并

     
全息储存

工作区,暂存区都是所有分支通用。意味着 从A分支切换到B分支时,工作区,暂存区都没变。但一般来说,你需要的是:

  • 工作区进入B分支的最新状态
  • 保存A分支的工作区,暂存区内容 因此切记切换前要保存
git stash  #保存当前分支工作区,暂存区内容,下次切换时复原

远程协作

关联远程仓库
git remote add origin <HTTPS或SSH>   
#origin是本地使用的远程仓库别名,避免每次写完整HTTPS或SSH

git remote -v       #查看远程仓库地址(HTTPS或SSH)

git remote remove origin #删除一个远程关联名,一般一个仓库就关联一个origin,换绑远程请先删除原来的关联,否则origin是被占用的
远程跟踪分支

远程跟踪分支与同名远程分支强绑定。位于本地,是由fetch从远程拉取的镜像。

git fetch origin   #从远程获取最新提交,作为独立的远程跟踪分支存在,名字是origin/分支

git merge origin/分支     #可以自行判断并决定要不要与本地分支merge

git merge  #当前分支已经有upstream了,则省略输入upstream

远程跟踪分支可以作为本地分支的upstream,

git branch --set-upstream-to=origin/远程分支名   #为当前分支指定upstream

指定upstream,意味着需要分支作为参数的地方,不输入都默认以upstream作为参数。对于与远程分支同步的本地分支,同步操作很方便:

推送&拉取
git push origin feature  #本地分支推送远程分支
git pull origin feature  # 拉取远程分支到本地,等同于 fetch + merge

git pull   #指定了stream后,简写
git push   #指定了stream后,简写
git push --set-upstream origin feature  #首次推送,推送同时建立远程跟踪并指定为upstream
git push origin <分支名> --force   #强制覆盖性推送远程,新手常用
git clone 的支线分支

git clone 默认在本地创建main 或 master 分支,此外所有分支创建为远程跟踪分支。 本地创建main 或 master 分支,自动设置了其upstream,因此在主分支下可以直接

git push
git pull

想要本地同步更新main以外的分支,可以这样,

git checkout -b feature origin/feature 

# 创建并切换到本地分支feature,创建内容用origin/feature,且会自动建立upstream

状态查询

查看提交历史
git log              #完整历史 

git log --oneline --graph   #简洁图形化展示
查看未保存改动

目录文件右边有状态提示:(文件级) M (Modified,已修改) R (Renamed,已重命名/移动) U (Untracked,未被跟踪,没被add过) U (Unmerged,合并冲突)?

此外文件内部,行级状态:

git diff               #未暂存的改动(会显示在行前,蓝)
git diff --staged      #查看已暂存但未提交的改动(会显示在行前,绿)

配置SSH密钥

windows

生成密钥

任意位置右键,打开Git Bash 终端

          #查看现有密钥,如果没有则创建
ssh-keygen -t ed25519 -C "your_email@example.com"   #生成密钥
#接下来回应提示。
 设置password:  回车不设置
 重复password:  同上

# id_ed25519 私钥
  id_ed25519.pub 公钥
启用agent

不同终端要各自启用ssh-agent,方式不同

Git Bash/linux 终端

eval "$(ssh-agent -s)"        # 启动 ssh-agent
# 应显示:Agent pid 12345

ssh-add ~/.ssh/id_ed25519     # 将私钥添加到 ssh-agent
# 如果设置了密码,此时会提示输入

powershell

这个比较常用,尤其是作为vscode通用的终端

step1. 系统搜索栏查找powershell,管理员模式打开

step2. 启用agent服务:

Get-Service ssh-agent | Set-Service -StartupType Manual
Start-Service ssh-agent


step.3 修改私钥权限:
右键私钥 → 属性 → 安全 → 高级 → 禁用继承 → 从此对象中删除所有继承的权限;
添加 → 选择主体 → 查找自己用的用户添加权限。只勾选- 读取/读取和执行。

step4. 添加私钥到agent:

ssh-add C:\Users\用户名\.ssh\id_ed25519    
   

验证连接

ssh -T git@github.com 

#显示类似下面的消息就对了
Hi ttt125145! You've successfully authenticated, but GitHub does not provide shell access.
在github添加

密钥文件夹.ssh在C盘用户根目录。

  • 复制公钥内容,

  • 去github settings——左边栏Access下的SSH and GPG keys —— New SSH key,

  • 用公钥内容创建,名字随意。

本地git用户

配置用户信息————一台电脑上只用配置一次(— gobal 全局)

git config --global user.name "Your Name"
git config --global user.email "email@example.com"