MySQL 命令行辅助 mycli

Install

Mycli is tested on macOS and Linux. It runs on Python 2.7 and 3.4+.

NOTE: Python 2.6 support was dropped in mycli 1.9.0. If you’re running Python 2.6, you’ll want to install mycli 1.8.1.

######Python Package:

If you already know how to install python packages, then you can do:

  • You might need sudo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$ pip install mycli
or
$ easy_install mycli

# Windows:
# Follow the instructions on this blogpost to install mycli on Windows: https://www.codewall.co.uk/installing-using-mycli-on-windows/

# macOS:
#The easiest way install mycli on a Mac is to use Homebrew.
$ brew install mycli


# Linux:
# Debian/Ubuntu Package:
# https://packages.debian.org/search?keywords=mycli
$ sudo apt-get update
$ sudo apt-get install mycli

# Fedora
$ sudo dnf install mycli


# RHEL, Centos:
# We don't have packages for RHEL or Centos, yet. Instead, use pip to install mycli. You can install pip on your system using:
$ sudo yum install python-pip python-devel
# Once that is installed, you can install mycli:
$ sudo pip install mycli
Install Error QA.
1
Cannot uninstall 'configobj'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
Fix code
1
pip install --ignore-installed mycli

解除微信公众平台对微上客的授权

由于微信平台的限制,在渠道设置中删除渠道时,并不会同步在微信公众平台解绑,所以还需要用户进入到微信公众平台手动解绑才行。

步骤

左边功能区选择 【添加功能插件】

mage-20180503094819

切换到插件库旁边的【授权管理】

mage-20180503094655

找到已授权的微信第三方平台
查看平台详情

mage-20180503094557

选择 【取消授权】

mage-20180503094739

Howto Install Redmine on Ubuntu 16.04

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# base
apt install mysql-server libmysqlclient-dev git-core subversion imagemagick libmagickwand-dev libcurl4-openssl-dev
apt install build-essential mysql-server ruby ruby-dev libmysqlclient-dev imagemagick libmagickwand-dev
# install mysql
systemctl enable mysql.service
systemctl start mysql.service
create database redmine character set utf8;
grant all privileges on redmine.* to [email protected]'localhost' identified by 'redmine';
flush privileges;
# Install ruby
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
source /etc/profile.d/rvm.sh
rvm requirements
rvm install 2.4.1
rvm use 2.4.1 --default
# install passenger and nginx
gem install passenger --no-ri --no-rdoc
passenger-install-nginx-module
# 1. auto install nginx.
curl https://raw.githubusercontent.com/makevoid/nginx-passenger-ubuntu/master/nginx/nginx.service > /lib/systemd/system/nginx.service
systemctl daemon-reload
systemctl enable nginx
vim /opt/nginx/conf/nginx.conf # 注销 location / {} 的配置
server {
listen 80;
server_name [your_server_domain_name] # redmine.com;
root /var/data/redmine/public;
passenger_enabled on;
client_max_body_size 10m; # Max attachemnt size
}

systemctl start nginx
# install redmine
mkdir /var/data
cd /var/data
svn co http://svn.redmine.org/redmine/branches/3.4-stable redmine
cd /var/data/redmine
cp -pR /var/data/redmine/config/database.yml.example /var/data/redmine/config/database.yml
vim config/database.yml # set redmine db user and password
# Install Plugins
cd /var/data/redmine
gem install bundler --no-ri --no-rdoc
bundle install
# configure redmine
cd /var/data/redmine
mkdir public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets config.ru
chmod -R 755 files log tmp public/plugin_assets
# input database and base file.
RAILS_ENV=production bundle exec rake db:migrate
RAILS_ENV=production bundle exec rake redmine:load_default_data
bundle exec rake generate_secret_token
# restart nginx, install ok.
systemctl restart nginx
# restart redmine
touch /var/data/redmine/tmp/restart.txt
# configure email service
vim /var/data/redmine/config/configuration.yml

iPhone/iPad 不越狱安装旧版程序

前言

软件版本迭代是会带来新的功能和 BUG 修复,为给用户带来更好的使用体验,我也是乐于尝鲜的性格,所以在软件推出发布新版本时都会及时更新,但用户体验其实是一个玄学的话题,有时并不能给你带来更好的体验,在 iOS 上,由于苹果商店严格的管理机制导致我们在升级后,想要回退到之前版本变得十分困难。

虾米音乐升级到 6.0 版本之后,改变很大,作为一位老虾米非常不适应,所以就瞄准了 6.0 之前的最后一个版本:5.9.4。

解决办法是在 iTunes 下载程序时,使用抓包工具对与苹果应用商店服务器之间的请求进行分析,通过修改下载请求中程序版本识别序列号来下载旧版本。

准备

网上较多的解决办法是使用 Fiddler+iTunes 是在 Windows 平台,因为我只有 Mac ,所以用Charles 代替 Fiddler,这里需要注意的是iTunes的版本,在笔者写这篇教程的前一天 iTunes 更新到12.7,在 12.7 中有一个很大的变化移除了 App store ,所以请使用低于 12.7 版本的 iTunes 。

Charles 安装

对于 Charles 版本并没有特殊要求,我这边是通过brew安装,你也可以到 Charles 官网下载安装, Charles 是需要付费的软件,但是有30天免费使用期限,如果你有长期使用打算,建议购买正版授权。

Charles SSL证书导入系统

从 Charles 中导出证书文件

在 KeyChain Access 中导入证书

选中导入的证书,然后右键选择 ‘Get Info’ ,设置证书信任状态

“虾米音乐” 的三次下载

第一次下载

打开 Charles ,开启监听,然后使用搜索虾米音乐,点击 Downloads 按钮。

点击下载后,在 Charles 会出现监听到信息,找到一条 ‘p[xx]-buy.itunes.apple.com’ ,其中 xx 是一个随机的数字,选中它,然后右键菜单栏中勾选 ‘Enable SSL Proxying’ 和 ‘Breakpoints’ 。设置完成后,在 iTunes 下载中,清理下载记录。

第二次下载

重新搜索虾米音乐,并点击下载按钮,这时 Charles 会弹出窗口,然后在弹出窗口的右下三个按钮中选择 ‘Execute’ ,这一步是我们请求服务器,紧接着出现的就是服务器给我们的响应,然后选择 ‘Edit Response’ - ‘XML Text’ ,然后向下滚动找到下图中的部分,这里是所有虾米音乐的版本的序列数字,但是这里没有办法直接看到版本号,越大的数字版本号越新。这里可以通过在手机 App store 中查看软件的版本记录,找到大概要回退多少个版本,然后数字从大到小找个半个序列数字记录下来,然后在下面三个按钮中选择 ‘Abort’ ,这时 iTunes 会弹出一个报错窗口,关掉即可。

第三次下载

再次重新搜索虾米音乐,并点击下载,在这次Charles弹出窗口中我们需要直接修改 ‘Edit Requset’ - ‘XML Text’ ,将如下图中的 ‘appExtVrsid’ 对应的值修改为,我们上一步中记录的序列数字,然后就一直在每次弹出选择时,选择 ‘Execute’ ,直到下载完成记录。

验证

下载完成后,你的 iTunes App Library 中已经有了一个虾米音乐,连接上你的手机,将其安装到手机上即可,下图是我安装后的版本截图。

在Linux终端使用SSR服务实现科学上网

昨天在群内看到有朋友在询问如何在Linux终端内使用SSR来实现科学上网,所以抽空研究了下在Linux中如何使用,本文参考了OtokazeDjango 两位的博客,文章链接在博文最后;SSR服务提供商依然采用了ssGlobal,在Google的过程中,找了不少解决方案,这里仅做一种简单整理,实验操作系统有CentOS 7.4 & Ubuntu 16.04.3。

ssr 代理服务

下载
1
2
3
4
5
6
# 需要本地git 环境
yum install -y git
git clone https://github.com/SAMZONG/gfwlist2privoxy.git
cd gfwlist2privoxy/
mv ssr /usr/local/bin
chmod +x /usr/local/bin/ssr
安装配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[[email protected] ~]# ssr install
Cloning into '/usr/local/share/shadowsocksr'...
remote: Counting objects: 5490, done.
remote: Total 5490 (delta 0), reused 0 (delta 0), pack-reused 5490
Receiving objects: 100% (5490/5490), 1.71 MiB | 410.00 KiB/s, done.
Resolving deltas: 100% (3799/3799), done.

[[email protected] ~]# ssr config # 配置文件路径 /usr/local/share/shadowsocksr/config.json
{
"server": "0..0.0.0", // ssr服务器ip
"server_ipv6": "::",
"server_port": 8080, // ssr服务器端口
"local_address": "127.0.0.1",
"local_port": 1080,

"password": "123456", // 对应password
"method": "none", // 这里对应SSGlobal配置中的Encryption
"protocol": "auth_chain_a", //对应protocl
"protocol_param": "",
"obfs": "http_simple", //对应obfs
"obfs_param": "hello.world", //对应obfs_param
"speed_limit_per_con": 0,
"speed_limit_per_user": 0,

"additional_ports" : {}, // only works under multi-user mode
"additional_ports_only" : false, // only works under multi-user mode
"timeout": 120,
"udp_timeout": 60,
"dns_ipv6": false,
"connect_verbose_info": 0,
"redirect": "",
"fast_open": false
}
启动/关闭
1
2
ssr start
ssr stop
卸载
1
ssr uninstall # 这里操作会删除/usr/local/share/shadowsocksr

以上,本地监听服务已经配置完成了,在填写的过程中,要注意你的本地监听地址和监听端口,默认是127.0.0.1:1080,如果你修改了设置,那么在后续配置中也要配合修改。

Privoxy 配置

首先,需要安装privoxy

CentOS 7.4
1
2
yum install -y epel-release
yum install -y privoxy
Ubuntu 16.04
1
apt install -y privoxy
全局模式

代理模式同其他平台上方式,将所有http/https请求走代理服务,如果需要全局代理的话按照如下操作即可,如果要使用PAC模式,请跳过此部分。

1
2
3
4
5
6
7
8
9
10
# 添加本地ssr服务到配置文件
echo 'forward-socks5 / 127.0.0.1:1080 .' >> /etc/privoxy/config

# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# 启动服务
systemctl start privoxy.service
PAC模式

使用GFWList是由AutoProxy官方维护,由众多网民收集整理的一个中国大陆防火长城的屏蔽列表,这里感谢@Otokaze 为我们提供了转换shell自动转换脚本,为了方便修改,我fork了这个项目,将这篇教程所用到的资源进行了汇总,你可以在最开始git clone的目录中找到执行脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[[email protected] ~]# cd gfwlist2privoxy/
[[email protected] gfwlist2privoxy]# ls
gfw.action gfwlist2privoxy README.md ssr
[[email protected] gfwlist2privoxy]# bash gfwlist2privoxy
proxy(socks5): 127.0.0.1:1080 # 注意,如果你修改了ssr本地监听端口是需要设置对应的
{+forward-override{forward-socks5 127.0.0.1:1080 .}}

=================================================================

"cp -af /root/gfwlist2privoxy/gfw.action /etc/privoxy/"

[[email protected] ~]# cp -af gfw.action /etc/privoxy/
[[email protected] ~]# echo 'actionsfile gfw.action' >> /etc/privoxy/config

# Privoxy 默认监听端口是是8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# 启动服务
systemctl start privoxy.service
proxy 环境变量
1
2
3
4
5
6
7
8
9
# privoxy默认监听端口为8118
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy=localhost

# no_proxy是不经过privoxy代理的地址
# 只能填写具体的ip、域名后缀,多个条目之间使用','逗号隔开
# 比如: export no_proxy="localhost, 192.168.1.1, ip.cn, chinaz.com"
# 访问 localhost、192.168.1.1、ip.cn、*.ip.cn、chinaz.com、*.chinaz.com 将不使用代理

代理测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 访问各大网站,如果都有网页源码输出说明代理没问题
curl -sL www.baidu.com
curl -sL www.google.com
curl -sL www.google.com.hk
curl -sL www.google.co.jp
curl -sL www.youtube.com
curl -sL mail.google.com
curl -sL facebook.com
curl -sL twitter.com
curl -sL www.wikipedia.org

# 获取当前 IP 地址
# 如果使用 privoxy 全局模式,则应该显示 ss 服务器的 IP
# 如果使用 privoxy gfwlist模式,则应该显示本地公网 IP
curl -sL ip.chinaz.com/getip.aspx
管理脚本

在以上部署操作完成后,应该已经可以正常科学上网了,但是如果需要进行管理时,需要分别管理ssr和privoxy,为了方便管理,这里写了一个shell脚本方便管理: ssr_manager

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# Author Samzong.lu

case $1 in
start)
ssr start &> /var/log/ssr-local.log
systemctl start privoxy.service
export http_proxy=http://127.0.0.1:8118
export https_proxy=http://127.0.0.1:8118
export no_proxy="localhost, ip.cn, chinaz.com"
;;
stop)
unset http_proxy https_proxy no_proxy
systemctl stop privoxy.service
ssr stop &> /var/log/ssr-log.log
;;
autostart)
echo "ssr start" >> /etc/rc.local
systemctl enable privoxy.service
echo "http_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "https_proxy=http://127.0.0.1:8118" >> /etc/bashrc
echo "no_proxy='localhost, ip.cn, chinaz.com'" >> /etc/bashrc
;;
*)
echo "usage: source $0 start|stop|autostart"
exit 1
;;
esac
使用
1
2
3
4
5
6
7
8
9
10
11
mv gfwlist2privoxy/ssr_manager /usr/local/bin
chmod +x ssr_manager

# 启动服务
ssr_manager start

# 关闭服务
ssr_manager stop

# 添加开机自启动
ssr_manager autostart

参考链接

HowTo Use SSR Service on Mac

应邀制作一份关于Mac SSR的连接使用。

准备

  1. SSR 服务提供商,SSGlobal ,你可以到Telegram加入我们。SSGlobal Group
  2. MacOS 版本 10.12.6,经过实测OS版本对实际使用影响并不大。
  3. SSR Client, 下载

SSR服务

如果你需要科学上网的话,非常愿意给你推荐我正在使用的SSR服务商,但是由于其官方网站和客户沟通工具TG需要科学上网才能使用,所以你可以联系到我来介绍你们。

最新定价计划:

  • Plan-A:¥15.00元,1个月,无限流量,不限速,可自助切换节点。
  • Plan-B:¥15.00元,3个月,6G流量包,不限速,可自助切换节点。
  • 增加线路:¥8.00元,1个月,1条。

注:增加线路仅支持Plan-A用户配套购买,不超过主线路最长期限,不足1个月剩余时限用户不支持购买

注册账号

立即注册

05

这里[email protected] 仅仅是演示邮箱,请填写对应属于你的邮箱.

当你点击提交完成后,在你的邮箱会收到一封激活邮件,点击其中链接或将链接复制到浏览器中即可激活。

07

这里同样是激活链接,同样仅作为演示。

登录系统

立即登录

输入注册时的用户名密码,即可登录到系统内,然后在首页找到进入后台按钮,即可看到试用信息。

06

这里填写用户名或邮箱都可以。

进入系统后,找到订阅链接信息,默认情况下,你应该只有一条线路信息,付费用户享有应急通道。

04

上图中”切换“,用来切换不同服务器节点,注意,切换后要到客户端内刷新订阅信息,下面会讲到。

SSR Client 安装

在本文最上面已经有了,如何下载SSR 客户端的地方,细心的朋友,应该已经在SSGlobal官网上找到了对应下载页面,其中包含全平台的客户端工具。

下载

立即下载

01

下载完成后,找到你的下载文件,双击打开,将程序拖到Mac程序目录即完成安装,和Mac其他软件安装并无不同。

02

启动程序

在Launchpad中找到最近安装的 Shadowsocks NG R8,点击启动后,Mac右上角导航栏中会有一个小飞机的图标,点击可以看到以下信息:

03

上图中已经有我的订阅信息,请忽略

编辑订阅信息

选择编辑订阅信息,然后将你在SSGlobal 网站后台拿到的订阅信息添加到其中

09

注意只要添加URL信息即可,不需要修改其他。

然后选择手动更新订阅,这里在你的服务列表内,就有了你的服务器节点信息,选择对应节点即可开启科学上网

PAC 规则

首次使用PAC需要更新一次PAC规则,操作如下图。

10

这里的PAC规则是从GFWLists更新的,由于其更新速度较慢,所以如果日常使用发现某些网站无法使用,可以手动添加到PAC规则内

11

|| domain , 这里表示匹配所有代理

更多关于用户规则,可以查看这里,使用手册

结语

到这里,基本常用的安装和使用已经完成了,如果测试后仍旧无法正常使用,请仔细检查是否遗漏步骤,也可以与我取得沟通。

HowTo-use-TortoiseGit-for-Windows

Git是目前最先进的版本控制系统,越来越多的业务场景都在使用Git,风靡全球的Github更是让Git版本控制系统名声大震,但是GitHub旨在建立一个开源的生态环境,所以不适合企业内部的管理系统,在之前的文章中,我也讲到了如何搭建GitLab,可以在企业内部自建一套功能完善的Git版本控制系统。

GitLab是一个非常成熟的服务端应用,但是作为一名开发人员,我们在使用GitLab与其他人员协同版本时,需要有一个工作对我们的每次修改更新以及推送,这也是版本控制工具的真正精髓;在不同的平台有着很多丰富的应用软件,所以挑选一款适合自己的Git GUI工具很重要。

目前在众多Git Client之中做的比较好的是SourceTree,并且同时支持Mac和Windows双平台,但是有一个问题,当我们在初次安装时需要验证Atlassian账号,但是Atlassian的注册页面用了requirejs,而且是用了Google的CDN服务,所以必须翻墙,这对很多中国用户的使用造成了不变;所以,今天我在这里推荐一个在Windows平台下同样可以作为Git图形化客户端工具的:TortoiseGit

TortoiseGit 是 TortoiseSVN 的 Git 版本,TortoiseGit用于迁移 TortoiseSVN 到 TortoiseGit,解决了在Windows平台之上没有合适Git图形化客户端的问题,TortoiseGit不仅免费,而且同样支持丰富的语言包,但是需要独立下载语言包安装,默认只有英文,注意语言包与程序版本一定要匹配。

下载

TortoiseGit的官方下载地址是这里:https://tortoisegit.org/download/ ,下载时请注意与你系统的兼容性。

注意TortoiseGit 1.8.16之后的版本不在支持Windows XP 和 Server 2003

因为TortoiseGit官网不在国内,所以在访问下载时速度非常的慢,我将目前的稳定版本2.4上传到我的百度云盘,但是以后我可能不能及时更新,所以如果你对版本要求不是很高,可以点击下面链接下载。

链接: https://pan.baidu.com/s/1eScNjA6 密码: 31hu

如链接失效,您可以通过本页面右下角展开通过邮箱,与我取得联系。

安装

Git for Windows

首先,我们需要安装Git在你的电脑上,这保证你的TortoiseGit运行时所需要的依赖环境。

下载地址:https://git-for-windows.github.io/

同样,因为某些网络的原因,导致我们在下载时也会很慢,所以我也将目前最新2.13版本上传到了我的百度云盘:

链接: https://pan.baidu.com/s/1c12ZvRq 密码: 43yt

安装过程,这里不在展示,通常情况下,你只需要一路点击Next即可,但是如果你想要修改一些设置,例如默认的安装位置,那么你需要注意下,在TortoiseGit初次启动时,你需要手动设置Git.exe的位置。

TortoiseGit

我的测试系统是Windows 7 旗舰版 64位,并且支持TortoiseGit最新的版本。

请依次安装上图中两个软件,注意LanguagePack应该在主程序之后安装,同样,你也只需要一路点击Next即可。

在你安装完成之后,在该目录的空白区域,单击鼠标右键,你应该会看到新增了TortoiseGit的选项,我们选择”TortoiseGit”>“Settings”来初始化我们设置。

修改程序语言为中文

如果英文你的使用不会有影响,你可以略过这一步骤,同样你也不需要下载上面的LanguagePack包。

好了,按照如上图中操作,你应该已经修改了程序语言为中文,再次到空白区域单击测试就可以看到了。

使用TortoiseGit克隆你的项目

在我们安装了好TortoiseGit和Git的基本基础环境之后,我们需要使用TortoiseGit克隆项目,这里我们是在GitHub创建了一个测试项目,你可以直接使用你的项目地址即可。

测试项目

GitHub和GitLab都提供了通过使用HTTPS和SSH的方式,这两种方式有些不同,我会在下面分开讲述如何使用。

SSH验证方式

如果采用SSH验证方式,那么你需要生成一对公钥和私钥,并且将公钥上传到你的GitLab或GitHub上,然后在克隆你的项目时,使用匹配的私钥即可。

那在Windows如何上生成私钥呢?其实我们在安装TortoiseGit时已经默认安装PuTTYgen工具,我们可以利用它来创建秘钥。

打开PuTTYgen,点击generate即可创建密钥,PuTTYgen其实是按照鼠标运行的轨迹来计算的,所以在点击后,我们不停的使用鼠标移动,等待进度条完成就可以了。

当创建完成之后,你可以看到以下以下内容,注意不要关闭,我们要点击Save public keySave private key,并将上public key传到你的GitHub或GitLab账户之中。

注意,我在图中隐去了其他SSH keys信息,我建议你在做类似分享时也注意隐去你的重要信息

好了,接下来,我们就要开克隆我们的项目了,在你想要存放项目的目录内,鼠标右键选择”Git克隆“,然后输入你的项目URL,并且加载我们刚刚生产私钥文件。

注意,在你确认都没问题的情况下,点击确认,然后你就会看到如下页面,如果这个过程中出现问题,请注意检查项目URL和私钥文件是否正确。

到这里,我们SSH验证仓库的方式就全好,接下来我们就可以使用开始进行我们的工作,但在首次提交我们的项目时,需要设置用户名和密码,这是为了方便验证我们的身份。

点击”是“,在弹出的窗口中设定用户名和邮箱,保存即可。

HTTPS or HTTP

在使用GitLab为公司内部仓库时,可以不开通HTTPS验证,HTTP也不会影响我们的验证方式,但是从安全的角度上来说,强烈建议启用HTTPS,HTTPS加密传输可以给我们的代码和用户信息的安全提供更好的保护。

如果使用HTTPS or HTTP的方式,我们不需要增加任何密钥文件或怎样,只需要使用我们现有的GitHub或GitLab账号即可;在你想要存放项目的目录内,鼠标右键选择”Git克隆“,在弹出的窗口中,注意项目URL要是用HTTPS,并且去掉勾选加载密钥选项。

如果你的项目在GitLab上,并且这个项目是一个私有项目,那么这里就会要求你输入你的GitLab用户名和密码,输入正确的用户和密码就可以成功克隆了。

但是,由于我的测试项目在GitHub上,GitHub上的项目默认都是公开项目,所以在这一步骤不会询问我的用户名和密码,只有在我需要将本地更新推送到GitHub时才会验证;所以接下来我在项目目录下新增文件newfile2.txt,

注意,Git不同SVN,Git的提交不会将更新推送到远端服务器,所以我们在提交成功之后,再去手动推送

右键选择Git提交,会弹出提交页面,我们需要这里,输入提交说明信息,和需要提交的文件。

点击”提交之后“,我们会看成功提交的窗口,然后在窗口选择点击推送;

当我们点击推送之后,会要求输入对应的GitHub用户名和密码:

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×