刪除文件
刪除文件有兩種方式,一種是直接刪掉工作區(qū)的文件,還有一種是在命令行輸入rm <file>
進(jìn)行刪除。我們來練習(xí)比較生疏的命令行操作哈。在命令行中輸入如下:
rm air.txt
命令行沒有任何返回,但是你會(huì)發(fā)現(xiàn),工作區(qū)中air.txt
文件消失了,就像變魔術(shù)一樣。
上節(jié)課提到,如果不知道使用什么指令,可以輸入git status
,問問Git的建議。
git status
命令行回復(fù)如下:
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>
恢復(fù)文件。
git checkout —- air.txt
你會(huì)神奇地發(fā)現(xiàn),文件又奇跡般地回來了。
- 如果你想將版本庫中的文件也刪除掉,讓版本庫與工作區(qū)達(dá)成一致,可以使用
git rm <file>
指令。
git rm air.txt
命令行回復(fù)如下:
rm ‘a(chǎn)ir.txt’
再輸入:
git commit -m “delete air.txt”
命令行回復(fù)如下:
master 2b89ecc] delete air.txt
1 file changed, 1 deletion(-)
delete mode 100644 air.txt
此刻,該文件就從版本庫消失了。
遠(yuǎn)程倉庫
咱們之前都是在本地創(chuàng)建版本庫玩兒。現(xiàn)在,該學(xué)學(xué)git這種分布式管理系統(tǒng)的精華了。此時(shí),我們迫切需要一個(gè)服務(wù)器,讓我們可以進(jìn)行遠(yuǎn)程操作。好在,有一個(gè)神奇的網(wǎng)站,名叫GitHub。這個(gè)網(wǎng)站就是專門用來托管Git倉庫的。只需要注冊(cè)一個(gè)賬號(hào),就可以使用Git的遠(yuǎn)程倉庫啦。
設(shè)置Git賬號(hào)
本地的Git倉庫和GitHub倉庫之間傳輸需要通過SSH加密。下面按步驟進(jìn)行設(shè)置操作。
- 創(chuàng)建SSH Key。
首先查看工作區(qū)目錄,有沒有.ssh
目錄。如果有,再查看這個(gè)目錄下有沒有id_rsa
和id_rsa.pub
兩個(gè)文件,如果有,跳到第二步。如果沒有,在命令行中從輸入如下指令,創(chuàng)建SSH Key:
ssh-keygen -t rsa -C “youremail@example.com”
命令行回復(fù)如下:
Generating public/private rsa key pair.
之后直接按回車即可。
接下來,可以在用戶主目錄下找到.ssh
目錄。如果沒有找到,mac中使用組合鍵command+shift+.
,可以顯示被隱藏的文件或文件夾。發(fā)現(xiàn)里面有id_rsa
和id_rsa.pub
兩個(gè)文件,它倆是SSH Key的秘鑰對(duì),其中id_rsa
是私鑰,不能泄露給別人,id_rsa.pub
是公鑰,可以告訴任何人。
- 登錄GitHbu,點(diǎn)擊頭像上的
Setting
,之后點(diǎn)擊SSH and GPG keys
,在Title
中填入任意字符串,在Key文本框中粘貼id_rsa.pub
中的內(nèi)容:
點(diǎn)擊Add key
,可以看到已經(jīng)添加的Key。
添加遠(yuǎn)程庫
我們已經(jīng)在本地創(chuàng)建了Git倉庫,現(xiàn)在需要在GitHub中創(chuàng)建一個(gè)Git倉庫,這樣就可以讓兩個(gè)倉庫進(jìn)行遠(yuǎn)程同步,GItHub中的倉庫可以作為云備份。
- 登錄GitHub,點(diǎn)擊“Repositories”—“New”,創(chuàng)建一個(gè)新倉庫:
- 在”Repository name”中填入“xxlgit”,其它默認(rèn)設(shè)置,點(diǎn)擊“Create repository”,成功創(chuàng)建一個(gè)倉庫。
GitHub告訴我們,可以從創(chuàng)建新的文件,也可以與本地倉庫關(guān)聯(lián),將本地倉庫的內(nèi)容推送到GitHbu倉庫中。
咱試試如何將本地倉庫xxlgit
中的內(nèi)容推送到GitHub倉庫中。
- 首先,將本地倉庫與遠(yuǎn)程倉庫關(guān)聯(lián)起來。在本地
xxlgit
倉庫下運(yùn)行下面指令:
git remote add origin git@github.com:xxlquanrou/xxlgit.git
請(qǐng)將xxlquanrou
換成你自己的GitHub賬戶名,否則你關(guān)聯(lián)的是我的遠(yuǎn)程倉庫。然而,我這里沒有你的SSH Key公鑰,所以你的內(nèi)容推送不過來。
遠(yuǎn)程庫的名字是origin
,這是Git默認(rèn)的。不必修改,這樣大家公認(rèn)比較好記。
- 將本地倉庫的所有內(nèi)容推送到遠(yuǎn)程倉庫中。
git push -u origin master
命令行回復(fù):
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
分支,由于遠(yuǎn)程倉庫是空的,所以我們加上了-u
參數(shù),這樣Git不僅將本地的master
分支內(nèi)容推送到遠(yuǎn)程庫的master
分支中,還會(huì)把本地master
和遠(yuǎn)程master
關(guān)聯(lián)起來,方便以后推送時(shí)候可以簡(jiǎn)化指令。
現(xiàn)在,就可以在GitHub頁面中看到遠(yuǎn)程庫的內(nèi)容了,跟本地倉庫中的一模一樣。
- 現(xiàn)在,如果本地做了提交,只需要下列命令即可推送到遠(yuǎn)程:
git push origin master
到現(xiàn)在為止,我們才算真正擁有了分布式版本庫。
小結(jié)時(shí)間到啦~
- 刪除工作區(qū)的文件,可以使用命令
rm <file>
。- 如果想同時(shí)刪除版本庫中的文件,先使用
git rm <file>
,再使用git commit -m
指令。
3.如果想從版本庫中恢復(fù)工作區(qū)的文件,使用git checkout -- <file>
。- 創(chuàng)建SSH Key。
- 本地庫關(guān)聯(lián)遠(yuǎn)程庫:
git remote add origin git@github.com:xxlquanrou/xxlgit.git
,其中xxlquanrou
換成你自己的GitHub賬戶名,xxlgit
換成你自己的遠(yuǎn)程倉庫名字。- 關(guān)聯(lián)后,使用
git push -u origin master
進(jìn)行首次master分支的推送。- 之后的每次推送,使用
git push origin master
即可。
本小節(jié)到此結(jié)束。下節(jié)更精彩噢~