删除文件
删除文件有两种方式,一种是直接删掉工作区的文件,还有一种是在命令行输入rm <file>
进行删除。我们来练习比较生疏的命令行操作哈。在命令行中输入如下:
rm air.txt
命令行没有任何返回,但是你会发现,工作区中air.txt
文件消失了,就像变魔术一样。
上节课提到,如果不知道使用什么指令,可以输入git status
,问问Git的建议。
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: air.txt
modified: love.txt
no changes added to commit (use “git add” and/or “git commit -a”)
- 看提示,如果你误删文件,可以使用
git checkout -- <file>
恢复文件。
git checkout —- air.txt
你会神奇地发现,文件又奇迹般地回来了。
- 如果你想将版本库中的文件也删除掉,让版本库与工作区达成一致,可以使用
git rm <file>
指令。
git rm air.txt
命令行回复如下:
rm ‘air.txt’
再输入:
git commit -m “delete air.txt”
命令行回复如下:
master 2b89ecc] delete air.txt
1 file changed, 1 deletion(-)
delete mode 100644 air.txt
此刻,该文件就从版本库消失了。
远程仓库
咱们之前都是在本地创建版本库玩儿。现在,该学学git这种分布式管理系统的精华了。此时,我们迫切需要一个服务器,让我们可以进行远程操作。好在,有一个神奇的网站,名叫GitHub。这个网站就是专门用来托管Git仓库的。只需要注册一个账号,就可以使用Git的远程仓库啦。
设置Git账号
本地的Git仓库和GitHub仓库之间传输需要通过SSH加密。下面按步骤进行设置操作。
- 创建SSH Key。
首先查看工作区目录,有没有.ssh
目录。如果有,再查看这个目录下有没有id_rsa
和id_rsa.pub
两个文件,如果有,跳到第二步。如果没有,在命令行中从输入如下指令,创建SSH Key:
ssh-keygen -t rsa -C “youremail@example.com”
命令行回复如下:
Generating public/private rsa key pair.
之后直接按回车即可。
接下来,可以在用户主目录下找到.ssh
目录。如果没有找到,mac中使用组合键command+shift+.
,可以显示被隐藏的文件或文件夹。发现里面有id_rsa
和id_rsa.pub
两个文件,它俩是SSH Key的秘钥对,其中id_rsa
是私钥,不能泄露给别人,id_rsa.pub
是公钥,可以告诉任何人。
- 登录GitHbu,点击头像上的
Setting
,之后点击SSH and GPG keys
,在Title
中填入任意字符串,在Key文本框中粘贴id_rsa.pub
中的内容:
点击Add key
,可以看到已经添加的Key。
添加远程库
我们已经在本地创建了Git仓库,现在需要在GitHub中创建一个Git仓库,这样就可以让两个仓库进行远程同步,GItHub中的仓库可以作为云备份。
- 登录GitHub,点击“Repositories”—“New”,创建一个新仓库:
- 在”Repository name”中填入“xxlgit”,其它默认设置,点击“Create repository”,成功创建一个仓库。
GitHub告诉我们,可以从创建新的文件,也可以与本地仓库关联,将本地仓库的内容推送到GitHbu仓库中。
咱试试如何将本地仓库xxlgit
中的内容推送到GitHub仓库中。
- 首先,将本地仓库与远程仓库关联起来。在本地
xxlgit
仓库下运行下面指令:
git remote add origin git@github.com:xxlquanrou/xxlgit.git
请将xxlquanrou
换成你自己的GitHub账户名,否则你关联的是我的远程仓库。然而,我这里没有你的SSH Key公钥,所以你的内容推送不过来。
远程库的名字是origin
,这是Git默认的。不必修改,这样大家公认比较好记。
- 将本地仓库的所有内容推送到远程仓库中。
git push -u origin master
命令行回复:
numerating objects: 18, done.
Counting objects: 100% (18/18), done.
Delta compression using up to 4 threads
Compressing objects: 100% (12/12), done.
Writing objects: 100% (18/18), 1.41 KiB | 240.00 KiB/s, done.
Total 18 (delta 3), reused 0 (delta 0)
remote: Resolving deltas: 100% (3/3), done.
To github.com:xxlquanrou/xxlgit.git
* [new branch] master -> master
Branch ‘master’ set up to track remote branch ‘master’ from ‘origin’.
第一次推送master
分支,由于远程仓库是空的,所以我们加上了-u
参数,这样Git不仅将本地的master
分支内容推送到远程库的master
分支中,还会把本地master
和远程master
关联起来,方便以后推送时候可以简化指令。
现在,就可以在GitHub页面中看到远程库的内容了,跟本地仓库中的一模一样。
- 现在,如果本地做了提交,只需要下列命令即可推送到远程:
git push origin master
到现在为止,我们才算真正拥有了分布式版本库。
小结时间到啦~
- 删除工作区的文件,可以使用命令
rm <file>
。- 如果想同时删除版本库中的文件,先使用
git rm <file>
,再使用git commit -m
指令。
3.如果想从版本库中恢复工作区的文件,使用git checkout -- <file>
。- 创建SSH Key。
- 本地库关联远程库:
git remote add origin git@github.com:xxlquanrou/xxlgit.git
,其中xxlquanrou
换成你自己的GitHub账户名,xxlgit
换成你自己的远程仓库名字。- 关联后,使用
git push -u origin master
进行首次master分支的推送。- 之后的每次推送,使用
git push origin master
即可。
本小节到此结束。下节更精彩噢~