Linux下的终端代理和git常用命令
Linux终端挂上代理
ProxyChains 是一个终端代理方案,使用比较简单,直接安装:
apt install proxychains
编辑 /etc/proxychains.conf
文件,vi 翻至最下面,把默认的 tor 的代理方式、端口换成你的代理端口,比如常用的 Shawdowsocks 代理:
vi /etc/proxychains.conf
翻到最下面把 tor 端口改成:
socks5 127.0.0.1 1080
使用
先启动代理,连接至服务器,然后,只需要在运行程序的命令前加上 proxychains 即可。
以俺上传博客为例,命令行输入:
proxychains hexo deploy
git 同理:
proxychains git push
优点:ProxyChains 只会影响指定运行程序
测试
proxychains curl www.google.com
git分支改动和提交
首先克隆你的整个项目仓库
git clone git@github.com:username/origin.git
切换分支
cd project
git branch
git checkout -b gh-pages origin/gh-pages //在本地新建远程分支的镜像(此时模板文件将全部复制到本地文件夹中)
git checkout gh-pages //切换分支
这个时候分支数据已经切换过来了,看看
cd project && ls
这个时候你就可以改动分支内容了,完了以后正常 push
git add .
git commit -m "更新说明"
git push origin gh-pages
切换回主分支
git checkout master
git常用命令
git init
git初始化
git config --global user.name "xxx"
配置用户名
git config --global user.email "xxx@xxx.com"
配置邮件
git add .
把所有变化提到暂存区
git add xxx
把制定文件提到暂存区
git status
查看当前文件状态
git commit -m ""
提交更新
git commit -am 'xxx'
将 add 和 commit 合为一步, 但只能 cover 到已被 track 的文件
git show commit_id
显示某个提交的详细内容
git log
查看 commit 日志
git reset --hard commit_id
回退到某个 commit
git revert commit_id
进入到某个 commit 的代码,并生成新的 commit
git remote -v
查看本地关联的远程仓库
git remote add xxx
地址 关联远程仓库,名字为xxx
git remote rename oldname newname
修改远程仓库的名字
git remote rm name
删除名字为 name 的远程仓库的关联
git pull name branch
拉取名字为 name 的远程仓库的 branch 分支
git push name branch
推送名字为 name 的远程仓库的 branch 分支
git checkout -b branch [remote/master]
新建并进入一个名字为 branch 的分支 可选参数指在某个分支基础上新建
git checkout branch
切到名字为 branch 的分支
git branch -D branch
删除名字为 branch 的分支
git branch -a
查看所有分支 包括本地和远程
git clone
地址 克隆项目到本地
git fetch [name] [branch]
将获取远程仓库的更新取回本地,取回的代码对本地的开发代码没有影响,无参数时默认取所有
git merge branch
把 branch 分支合并到当前分支
git push name :branch
删除名字为 name 的远程的 branch 分支
git rebase -i HEAD~x
或 git rebase -i commi_id
(commi_id 不参与合并的) 合并多个 commit, pick 改为 s, 如有冲突,解决以后继续 git add . git rebase --continue
取消合并 git rebase --abort
git tag name [commit_id]
增加名字为 name 的 tag, commit_id 的 commit 处打 tag
git tag
查看所有 tag,按字母排序
git tag -d name
删除名字为 name 的 tag
git push origin tagname
把名字为 tagname 的 tag 推到远程
git push --tags
把所有 tag 推送到远程仓库
git push origin :refs/tags/<tagname>
删除远程 tag