关于Git--分布式版本控制系统(3)
2017-05-08 15:24
190 查看
在Git中,删除也是一个修改操作
举例说明:
首先添加一个新文件test.txt到Git并且提交
一般情况下,通常 直接在文件管理器中把没用的文件删了,或者用rm命令删了
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,使用git status命令查看哪些文件被删除了
现在有两个选择,一是确实要从版本库中删除该文件,就用命令git rm删掉,并且git commit
另一种情况是删错了,因为版本库中还有,所以可以把误删的文件恢复到最新版本。
git checkout其实是用版本库中的版本替换工作区的版本,无论工作区是修改还是删除,都可以一键还原
不过要注意的是,最后恢复的是文件的最新版本,将丢失最近一次提交后所修改的内容。
远程仓库
Git是分布式版本控制系统,同一个Git仓库,可以分布在不同的机器上,怎么分布呢?最早,肯定只有一台机器有一个原始版本库,别的机器可以克隆这个原始版本库,而且每台机器的版本库其实都一样,没有主次之分。
只有一台电脑时也可以克隆多个版本库,只要不在同一个目录下。不过不建议这样做。现实情况是,有一台电脑充当服务器的角色,每天24小时开机,其他人都从这个服务器仓库克隆一份到自己的电脑山,并且各自把各自的提交推送到仓库里,也从服务器仓库中拉取别人的提交。
可以自己搭建一台运行Git的服务器。不过现阶段可以使用GitHub网站,这个网站就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
由于本地的Git仓库和GitHub之间的传输是通过SSH加密的,所以,需要进行下列设置
第1步:创建SSH Key 。在用户主目录下,查看是否有.ssh目录,再看下这个目录下是否有id_rsa和id_rsa.pub这两个文件(注:SSH的基于密钥的登录方式:自己事先创建一对密钥,把自己的公钥放在你需要登录的服务器上,当客户端需要请求密钥验证登录服务器时,服务器收到请求后,服务器就用公用密匙加密一段随机字符串并把它发送给客户端。客户端收到加密后的随机字符串之后就可以用客户端的私钥加密再把它发送给服务器,如果服务器上你事先存放的公钥解密成功则证明用户是可信的,直接允许登录,不再要求密码。获取自己密钥对的命令格式:$
ssh-keygen 运行上面的命令之后,系统会出现一系统提示,可以一路回车,如果担心私钥安全,可以对私钥设置口令passphrase。命令完成后,在~/.ssh目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你的公钥,后者存放你的私钥,然后将自己的公钥传到服务器上,该命令格式为:$ssh-copy-id user@ip 成功登陆后,重启服务器ssh服务:$systemctl restart ssh.service 之后就可以远程操控服务器了),如果已经有了,继续下一步。如果没有,打开Shell(Windows下打开Git
Bash),创建SSH Key
把邮件地址换成自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码
如果顺利的话,可以在用户主目录里面找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件
第2步:登录GitHub,打开"Account settings","SSH Keys"页面:
然后点击Add SSH Key,填上任意的Title,在Key文本框中粘贴id_rsa.pub文件的内容
![](http://www.liaoxuefeng.com/files/attachments/001384908342205cc1234dfe1b541ff88b90b44b30360da000/0)
点击add key之后,就应该可以看到已添加的Key
为什么GitHub需要SSH Key呢?
因为GitHub需要识别出你推送的提交确实是你推送的,而不是别人冒充的,而Git支持SSH协议,所以,GitHub只要知道了你的公钥,就可以去确定只有你自己才能推送。
GitHub允许你添加多个Key,假定你有若干电脑,你可以在公司提交,或者在家提交,只要把每台电脑的Key都添加到GitHub,就可以在每台电脑上GitHub推送了。
在GitHub上免费托管的Git仓库,任何人都可以看到(但只有自己才能改),所以不要把敏感信息放进去。
不想别人看到Git库有两个方法,一是交费,让GitHub把公开的仓库变成私有的,另一个办法是自己动手,搭一个Git服务器
举例说明:
首先添加一个新文件test.txt到Git并且提交
$ git add test.txt $ git commit -m "add test.txt" [master 94cdc44] add test.txt 1 file changed, 1 insertion(+) create mode 100644 test.txt
一般情况下,通常 直接在文件管理器中把没用的文件删了,或者用rm命令删了
$ rm test.txt
这个时候,Git知道你删除了文件,因此,工作区和版本库就不一致了,使用git status命令查看哪些文件被删除了
$ git status # On branch master # Changes not staged for commit: # (use "git add/rm <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # deleted: test.txt # no changes added to commit (use "git add" and/or "git commit -a")
现在有两个选择,一是确实要从版本库中删除该文件,就用命令git rm删掉,并且git commit
另一种情况是删错了,因为版本库中还有,所以可以把误删的文件恢复到最新版本。
$ git checkout -- test.txt
git checkout其实是用版本库中的版本替换工作区的版本,无论工作区是修改还是删除,都可以一键还原
不过要注意的是,最后恢复的是文件的最新版本,将丢失最近一次提交后所修改的内容。
远程仓库
Git是分布式版本控制系统,同一个Git仓库,可以分布在不同的机器上,怎么分布呢?最早,肯定只有一台机器有一个原始版本库,别的机器可以克隆这个原始版本库,而且每台机器的版本库其实都一样,没有主次之分。
只有一台电脑时也可以克隆多个版本库,只要不在同一个目录下。不过不建议这样做。现实情况是,有一台电脑充当服务器的角色,每天24小时开机,其他人都从这个服务器仓库克隆一份到自己的电脑山,并且各自把各自的提交推送到仓库里,也从服务器仓库中拉取别人的提交。
可以自己搭建一台运行Git的服务器。不过现阶段可以使用GitHub网站,这个网站就是提供Git仓库托管服务的,只要注册一个GitHub账号,就可以免费获得Git远程仓库。
由于本地的Git仓库和GitHub之间的传输是通过SSH加密的,所以,需要进行下列设置
第1步:创建SSH Key 。在用户主目录下,查看是否有.ssh目录,再看下这个目录下是否有id_rsa和id_rsa.pub这两个文件(注:SSH的基于密钥的登录方式:自己事先创建一对密钥,把自己的公钥放在你需要登录的服务器上,当客户端需要请求密钥验证登录服务器时,服务器收到请求后,服务器就用公用密匙加密一段随机字符串并把它发送给客户端。客户端收到加密后的随机字符串之后就可以用客户端的私钥加密再把它发送给服务器,如果服务器上你事先存放的公钥解密成功则证明用户是可信的,直接允许登录,不再要求密码。获取自己密钥对的命令格式:$
ssh-keygen 运行上面的命令之后,系统会出现一系统提示,可以一路回车,如果担心私钥安全,可以对私钥设置口令passphrase。命令完成后,在~/.ssh目录下会生成两个新文件:id_rsa.pub和id_rsa。前者存放你的公钥,后者存放你的私钥,然后将自己的公钥传到服务器上,该命令格式为:$ssh-copy-id user@ip 成功登陆后,重启服务器ssh服务:$systemctl restart ssh.service 之后就可以远程操控服务器了),如果已经有了,继续下一步。如果没有,打开Shell(Windows下打开Git
Bash),创建SSH Key
$ ssh-keygen -t rsa -C "youremail@example.com"
把邮件地址换成自己的邮件地址,然后一路回车,使用默认值即可,由于这个Key也不是用于军事目的,所以也无需设置密码
如果顺利的话,可以在用户主目录里面找到.ssh目录,里面有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--分布式版本控制系统(1)
- 关于Git--分布式版本控制系统(2)
- 分布式版本控制系统Git的使用总结
- 分布式版本控制系统Git学习资源收集汇总(附Github个人简历自动生成)
- GIT(分布式版本控制系统)
- Git 分布式版本控制系统(四) ---分支管理
- 分布式版本控制系统Git常用命令
- git分布式版本控制系统试用
- 分布式版本控制系统 Git
- 分布式版本控制系统Git学习资源收集汇总
- 分布式版本控制系统之Git诞生
- Git 分布式版本控制系统(三)
- Git分布式版本控制系统学习笔记
- 分布式版本控制系统Git使用笔记
- git分布式版本控制系统
- 分布式版本控制系统Git学习资源收集汇总(附Github个人简历自动生成)
- 分布式版本控制系统Git学习资源收集汇总(附Github个人简历自动生成)
- git(分布式版本控制系统)
- Git 分布式版本控制系统(一)---git for linux简介和安装
- GIT(分布式版本控制系统)