常用终端命令(python虚拟环境+git)
基础
新建文件夹
mkdir [文件夹名]
新建文件
touch [文件名]
编辑文件
vi [文件名]
查看当前文件夹位置中的所有文件
ls (-a/-all)
-a:显示隐藏文件;-all:显示隐藏文件和属性
python虚拟环境
jupyter notebook 添加虚拟环境变量(需要在该变量中)
python -m ipykernel install (--user) --name [环境名称] --display-name "[显示的名称]"
#####查看python虚拟环境
lsvirtualenv -b
激活虚拟环境(pip install virtualenvwrapper
)
workon [虚拟环境名称]
查看该虚拟环境下的第三方库
pip list (-l)
-l
:不继承全局库
退出当前虚拟环境
deactivate
新建虚拟环境
virtualenv [虚拟环境名]
或者virtualenvwrapper下:
mkvirtualenv [虚拟环境名]
删除特定的虚拟环境
rmvirtualenv [虚拟环境名]
进入虚拟环境所在目录
cdvirtualenv
列出所有可更新的包
pip list --outdate
更新包
pip install --upgrade [包名]
查看已安装包信息
pip show [包名]
复制虚拟环境
cpvirtualenv [旧包名] [新包名]
git系列
git更新
git clone git://git.kernel.org/pub/scm/git/git.git
第一次配置用户信息
$ git config --global user.name [username]
$ git config --global user.email [useremail]
该命令只需运行一次。当你想针对特定项目使用不同的用户名与邮箱时,可以在那个项目目录下运行没有--global
选项的命令。
修改默认文本编辑器
git config --global core.editor [编辑器]
检查配置信息
$ git config --list
$ git config [某一项配置]
获取帮助
$ git help <verb>
$ git <verb> --help
$ man git-<verb>
初始化现有目录的仓库
git init
克隆现有仓库
git clone [url]
检查当前文件状态
git status (-s)
-s: 状态简览
跟踪新文件
git add [filename]
查看忽略文件
cat .gitignore
查看修改的部分
git diff
查看支持的git diff插件
git difftool --tool-help
提交更新
git commit (-m "[提交信息]")
-m: messages
提交所有跟踪文件
git commit -a (-m "[提交信息]")
移除文件
git rm (--cached) [文件名]
–cached: 值删除git仓库中的文件,保留当前工作目录中的。没有该命令是两端删除。
移动文件
git mv [旧文件] [新文件位置]
查看提交历史
git log (-p -2)
-p
: 显示每次提交的内容差异;
-2
: 显示最近2次提交
git log --stat
显示每次提交的简略统计信息。
git log --pretty=oneline
每次提交一行显示,--pretty
指定使用不同默认格式的方式展示提交历史(oneline/short/full/fuller)。
也可以自定义格式:
git log --pretty=format:"%h - %an, %ar: %s"
显示结果为:
7626325 - Night丶GIory Glory, 80 minutes ago: pandas
559cc4b - Night丶GIory Glory, 4 hours ago: sci-py
4112096 - Night丶GIory Glory, 21 hours ago: material
图形化展示分支、合并历史:
git log --pretty=format:"%h %s" --graph
或者限制输出时限:
git log --since=1.days
撤销操作
尝试重新提交:
git commit --amend
取消暂存文件
git reset HEAD [文件名]
撤销对文件的修改
git checkout -- [文件名]
查看配置的远程仓库服务器
git remote (-v)
-v
: 显示需要读写远程仓库使用的Git保存的简写与其对应的URL.
添加远程仓库
git remote add <shortname> <url>
从远程仓库中抓取与拉取
git fetch [remote-name]
推送到远程仓库
git push origin master
查看分支
git branch
查看远程仓库
git remote show origin
远程仓库重命名
git remote rename [oldname] [newname]
移除远程仓库
git remote rm [仓库名]
列出已有标签
git tag
查找标签
git tag -l ['v.*.**']
添加附注标签
git tag (-a) v*.* -m ['message']
没有-a
是轻量标签。
查看标签信息与对应的提交信息
git show [v*.*]
共享标签
git push origin [tagname]
删除标签
git tag -d [tagname]
但是该方法不会更新远程仓库的标签。更新远程仓库的标签方法:
git push origin :refs/tags/[tagname]
总结一下,初始化git的操作:
$ "# test" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git remote add origin https://github.com/NightGlory/test.git
$ git push -u origin master
分支branch
查看分支
git branch
分支创建
git branch (-b) [branchname]
-b
:创建并切换到该分支上。
查看各分支当前所指的对象
git log --oneline --decorate
分支切换
git checkout [branchname]
此时可以查看分支历史即指向和分叉情况:
git log --oneline --decorate --graph --all
分支合并
先切换到主线上来:
git checkout master
再合并分支:
git merge [branchname]
删除分支
合并后可以删除分支:
git branch -d [branchname]
查看每个分支的最后一次提交
git branch -v
查看哪些分支已经合并到当前分支
git branch --merged
--no-merged
:未合并分支
查看远程分支
$ git ls-remote
$ git remote show
同步远程分支
git fetch origin
查看设置的所有跟踪分支
git branch -vv
从服务器上拉取本地没有的数据但不合并
git fetch
从服务器上拉取本地没有的数据且尝试合并
git pull
删除远程分支
git push origin --delete [branchname]
变基
先执行变基:
$ git checkout [branchname]
$ git rebase master
再执行合并:
$ git checkout master
$ git merge [branchname]
三方变基
git rebase --onto master server client
这表明:取出client
分支,找出处于client
分支和server
分支的共同祖先之后的修改,然后把它们在master
分支上重做一遍。
然后可以快进合并分支了:
$ git checkout master
$ git merge client
再将server的修改也整合进来:
git rebase master server
然后也可以快进合并分支了:
$ git checkout master
$ git merge server