有关Git的那些事儿(七)——删除文件与远程仓库

删除文件

删除文件有两种方式,一种是直接删掉工作区的文件,还有一种是在命令行输入rm 进行删除。我们来练习比较生疏的命令行操作哈。在命令行中输入如下:

rm air.txt

命令行没有任何返回,但是你会发现,工作区中air.txt文件消失了,就像变魔术一样。

上节课提到,如果不知道使用什么指令,可以输入git status,问问Git的建议。

git status

命令行回复如下:

On branch master
Changes not staged for commit:
  (use “git add/rm …” to update what will be committed)
  (use “git checkout — …” 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”)
  1. 看提示,如果你误删文件,可以使用git checkout -- 恢复文件。
git checkout —- air.txt

你会神奇地发现,文件又奇迹般地回来了。

  1. 如果你想将版本库中的文件也删除掉,让版本库与工作区达成一致,可以使用git rm 指令。
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加密。下面按步骤进行设置操作。

  1. 创建SSH Key。

首先查看工作区目录,有没有.ssh目录。如果有,再查看这个目录下有没有id_rsaid_rsa.pub两个文件,如果有,跳到第二步。如果没有,在命令行中从输入如下指令,创建SSH Key:

ssh-keygen -t rsa -C “[email protected]

命令行回复如下:

Generating public/private rsa key pair.

之后直接按回车即可。

接下来,可以在用户主目录下找到.ssh目录。如果没有找到,mac中使用组合键command+shift+.,可以显示被隐藏的文件或文件夹。发现里面有id_rsaid_rsa.pub两个文件,它俩是SSH Key的秘钥对,其中id_rsa是私钥,不能泄露给别人,id_rsa.pub是公钥,可以告诉任何人。

  1. 登录GitHbu,点击头像上的Setting,之后点击SSH and GPG keys,在Title中填入任意字符串,在Key文本框中粘贴id_rsa.pub中的内容:
SSH

点击Add key,可以看到已经添加的Key。

添加远程库

我们已经在本地创建了Git仓库,现在需要在GitHub中创建一个Git仓库,这样就可以让两个仓库进行远程同步,GItHub中的仓库可以作为云备份。

  1. 登录GitHub,点击“Repositories”—“New”,创建一个新仓库:
  1. 在”Repository name”中填入“xxlgit”,其它默认设置,点击“Create repository”,成功创建一个仓库。

GitHub告诉我们,可以从创建新的文件,也可以与本地仓库关联,将本地仓库的内容推送到GitHbu仓库中。

咱试试如何将本地仓库xxlgit中的内容推送到GitHub仓库中。

  1. 首先,将本地仓库与远程仓库关联起来。在本地xxlgit仓库下运行下面指令:
git remote add origin [email protected]:xxlquanrou/xxlgit.git

请将xxlquanrou换成你自己的GitHub账户名,否则你关联的是我的远程仓库。然而,我这里没有你的SSH Key公钥,所以你的内容推送不过来。

远程库的名字是origin,这是Git默认的。不必修改,这样大家公认比较好记。

  1. 将本地仓库的所有内容推送到远程仓库中。
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页面中看到远程库的内容了,跟本地仓库中的一模一样。

  1. 现在,如果本地做了提交,只需要下列命令即可推送到远程:
git push origin master

到现在为止,我们才算真正拥有了分布式版本库。

小结时间到啦~

  1. 删除工作区的文件,可以使用命令rm
  2. 如果想同时删除版本库中的文件,先使用git rm ,再使用git commit -m指令。
    3.如果想从版本库中恢复工作区的文件,使用git checkout --
  3. 创建SSH Key。
  4. 本地库关联远程库:git remote add origin [email protected]:xxlquanrou/xxlgit.git,其中xxlquanrou换成你自己的GitHub账户名,xxlgit换成你自己的远程仓库名字。
  5. 关联后,使用git push -u origin master进行首次master分支的推送。
  6. 之后的每次推送,使用git push origin master即可。

本小节到此结束。下节更精彩噢~

你可能感兴趣的:(有关Git的那些事儿(七)——删除文件与远程仓库)