有關(guān)Git的那些事兒(七)——?jiǎng)h除文件與遠(yuǎn)程倉庫

刪除文件

刪除文件有兩種方式,一種是直接刪掉工作區(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”)
  1. 看提示,如果你誤刪文件,可以使用git checkout -- <file>恢復(fù)文件。
git checkout —- air.txt

你會(huì)神奇地發(fā)現(xiàn),文件又奇跡般地回來了。

  1. 如果你想將版本庫中的文件也刪除掉,讓版本庫與工作區(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è)置操作。

  1. 創(chuàng)建SSH Key。

首先查看工作區(qū)目錄,有沒有.ssh目錄。如果有,再查看這個(gè)目錄下有沒有id_rsaid_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_rsaid_rsa.pub兩個(gè)文件,它倆是SSH Key的秘鑰對(duì),其中id_rsa是私鑰,不能泄露給別人,id_rsa.pub是公鑰,可以告訴任何人。

  1. 登錄GitHbu,點(diǎn)擊頭像上的Setting,之后點(diǎn)擊SSH and GPG keys,在Title中填入任意字符串,在Key文本框中粘貼id_rsa.pub中的內(nèi)容:
SSH

點(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中的倉庫可以作為云備份。

  1. 登錄GitHub,點(diǎn)擊“Repositories”—“New”,創(chuàng)建一個(gè)新倉庫:
  1. 在”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倉庫中。

  1. 首先,將本地倉庫與遠(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)比較好記。

  1. 將本地倉庫的所有內(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)容了,跟本地倉庫中的一模一樣。

  1. 現(xiàn)在,如果本地做了提交,只需要下列命令即可推送到遠(yuǎn)程:
git push origin master

到現(xiàn)在為止,我們才算真正擁有了分布式版本庫。

小結(jié)時(shí)間到啦~

  1. 刪除工作區(qū)的文件,可以使用命令rm <file>
  2. 如果想同時(shí)刪除版本庫中的文件,先使用git rm <file>,再使用git commit -m指令。
    3.如果想從版本庫中恢復(fù)工作區(qū)的文件,使用git checkout -- <file>
  3. 創(chuàng)建SSH Key。
  4. 本地庫關(guān)聯(lián)遠(yuǎn)程庫:git remote add origin git@github.com:xxlquanrou/xxlgit.git,其中xxlquanrou換成你自己的GitHub賬戶名,xxlgit換成你自己的遠(yuǎn)程倉庫名字。
  5. 關(guān)聯(lián)后,使用git push -u origin master進(jìn)行首次master分支的推送。
  6. 之后的每次推送,使用git push origin master即可。

本小節(jié)到此結(jié)束。下節(jié)更精彩噢~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評(píng)論 6 544
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,577評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,600評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,944評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,108評(píng)論 0 290
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,652評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,385評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,616評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評(píng)論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,798評(píng)論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評(píng)論 1 295
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,334評(píng)論 3 400
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,570評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容