Git命令行-GitHub入門

命令行入門

為什么會(huì)有命令行這東西?

通常認(rèn)為眷昆,命令行界面(CLI)沒有圖形用戶界面(GUI)那么方便用戶操作匣距。因?yàn)槭柚迹钚薪缑娴能浖ǔP枰脩粲洃洸僮鞯拿钍埽茄忍捎谄浔旧淼奶攸c(diǎn),命令行界面要較圖形用戶界面節(jié)約計(jì)算機(jī)系統(tǒng)的資源拂到。在熟記命令的前提下痪署,使用命令行界面往往要較使用圖形用戶界面的操作速度要快。所以兄旬,在現(xiàn)在的圖形用戶界面的操作系統(tǒng)中狼犯,通常都保留著可選的命令行界面。
雖然現(xiàn)在許多計(jì)算機(jī)系統(tǒng)都提供了圖形化的操作方式领铐,但是卻都沒有因而停止提供文字模式的命令行操作方式悯森,相反的,許多系統(tǒng)反而更加強(qiáng)這部分的功能绪撵,例如Windows就不只加強(qiáng)了操作命令的功能和數(shù)量瓢姻,也一直在改善Shell Programming的方式。而之所以要加強(qiáng)莲兢、改善汹来,自然是因?yàn)椴粔蚝眯牛徊僮飨到y(tǒng)的圖形化操作方式對(duì)單一客戶端計(jì)算機(jī)的操作改艇,已經(jīng)相當(dāng)方便,但如果是一群客戶端計(jì)算機(jī)坟岔,或者是24小時(shí)運(yùn)作的服務(wù)器計(jì)算機(jī)及路由器谒兄、交換器等電信設(shè)備,圖形化操作方式有時(shí)會(huì)力有未逮社付,所以需要不斷增強(qiáng)命令行界面的腳本語言和宏語言來提供豐富的控制與自動(dòng)化的系統(tǒng)管理能力承疲,例如Linux系統(tǒng)的Bash或是Windows系統(tǒng)的Windows PowerShell。(以上內(nèi)容來自維基百科)

其實(shí)說白了就是命令行也是用來操作計(jì)算機(jī)的,只不過換了一種方式而已鸥咖。

救命快捷鍵:ctrl + c 用來終止危險(xiǎn)的操作

1.查看文件的操作

  • ~ 代表用戶目錄 例如: C:\Users\asus
  • ~Desktop 桌面目錄
  • clear 清空cmder窗口內(nèi)容
  • cd 進(jìn)入某個(gè)文件夾
  • cd ../ 返回上級(jí)目錄
  • pwd 查看當(dāng)前的絕對(duì)路徑
  • ls 查看當(dāng)前目錄的文件列表 默認(rèn)不顯示以‘ . ’開頭的文件
    • ls -l ; 查看文件列表并顯示更新時(shí)間
    • ls 路徑 ; 查看指定路徑文件的內(nèi)容列表
  • cat 路徑 ; 查看指定文件的具體內(nèi)容(文字燕鸽,代碼) 內(nèi)容過多會(huì)一直滾動(dòng)頁面 因此不常用
  • head 路徑 ; 查看指定文件的具體內(nèi)容(文字,代碼) 默認(rèn)前10行 可通過 -n 數(shù)字 修改
 head 3/1.txt -n 15   // 查看前十五行內(nèi)容
  • tail 路徑 ; 查看指定文件的具體內(nèi)容(文字啼辣,代碼) 默認(rèn)后10行 可通過 -n 數(shù)字 修改

  • less 路徑 ; 查看指定文件的具體內(nèi)容(文字啊研,代碼) 適合多行內(nèi)容 可通過 上下鍵或 j,k鍵來控制查看的多少,q鍵退出

    查看代碼選中高亮狀態(tài)下需要摁下esc才能摁q退出

2.增加文件的操作

  • touch 文件名加后綴 ; 創(chuàng)建一個(gè)指定文件名的空的文件

    • 創(chuàng)建同一目錄的多個(gè)文件只需要加空格隔開即可 例 : touch 1.js 2.js 3.js
  • echo 內(nèi)容 > 文件名 ; 創(chuàng)建并添加指定內(nèi)容的文件 如果已經(jīng)有這個(gè)文件則覆蓋此文件內(nèi)容

    • 如果想要追加要寫兩個(gè) > 例如 : echo 內(nèi)容 >> 文件名
    • 追加兩行內(nèi)容 ; 例 : echo -e "1\n2" >> 1.txt
  • mkdir 文件夾名/ ; 創(chuàng)建指定名稱的文件夾

    • mkdir -p 文件名/文件名/文件名...... 党远; 創(chuàng)建多層級(jí)的目錄文件
    • 創(chuàng)建同一目錄的多個(gè)目錄只需要加空格隔開即可 例 : mkdir a b c
  • cp 被拷貝文件名 新建文件名 ; 復(fù)制一個(gè)新的文件

    • cp -r 被拷貝目錄 新建目錄 ; 拷貝目錄

3.刪除文件的操作

  • rm 文件名 ; 刪除指定的文件
    • rm -r 目錄名 : 刪除指定的目錄
    • rm -rf 目錄名 ; 強(qiáng)制刪除指定目錄

使用刪除命令時(shí)候削解,要注意自己的當(dāng)前路徑,避免刪除重要文件

4.修改文件的操作

  • code 文件名 ; 用vscode編輯器打開指定文件 進(jìn)行修改編輯

    • 如果不能執(zhí)行就是vscode沒有加到PATH里面
  • start 文件名(mac使用open); 使用默認(rèn)程序打開文進(jìn)行編輯

  • echo ' ' > 文件名 ; 清空文件內(nèi)容

  • mv 文件名 目錄 ; 移動(dòng)指定文件到指定目錄

    • mv 文件名 . ; 移動(dòng)到當(dāng)前目錄
  • mv 文件名1 文件名2 ; 把文件1重命名為文件名2

  • touch 文件名 ; 修改此文件的最后更新時(shí)間為當(dāng)前時(shí)間

  • echo $? ; 查看成功失敗返回值 因?yàn)槊钣谐晒蛘呤?: 成功會(huì)返回0沟娱,失敗會(huì)返回1

其他操作:

  • 在命令行窗口中按上下方向鍵可復(fù)制之前的命令
  • alt + . 可復(fù)制上一行命令的最后一個(gè)參數(shù)

獲取更多命令的方法:

yarn global add tldr   // 下載后使用   tldr 命令  就可以查看詳細(xì)的用法

5.腳本文件

組合命令:
  1. 命令的組合使用 && 操作

    &&的作用就是前面的命令執(zhí)行成功時(shí)才會(huì)接著執(zhí)行&&后面的命令

  2. 命令的組合使用 氛驮; 操作

    ; 的作用就是不管 ; 前面的命令執(zhí)行成功與否都會(huì)執(zhí)行后面的命令

    在編輯器里面命令的回車換行就相當(dāng)于 ; 操作

把命令變成文件:

使用組合操作將多條命令放在一個(gè)文件中就是腳本文件。

步驟:

  1. 創(chuàng)建一個(gè)文件济似,后綴不要求矫废,也可以沒有

  2. 添加執(zhí)行權(quán)限(windows沒有這個(gè)要求,mac系統(tǒng)專有)

    • chmod +x 腳本名
  3. 把要執(zhí)行的命令寫進(jìn)文件里面

    • 腳本的傳參:

    •   mkdir $1;cd $1;touch 1.js;touch 1.html;   // $1  就是參數(shù)
      
  4. 運(yùn)行 【 sh 正確的路徑 】即可執(zhí)行,或者 【 ./ 正確的路徑 】 也可以運(yùn)行

    • 如果加了 shebang ,刪掉 sh 也能執(zhí)行

      • shebang: 一個(gè)操作系統(tǒng)弄支持多種腳本砰蠢,需要指定用什么程序來執(zhí)行腳本磷脯,一行注釋

      •   #!/usr/bin/env sh    //使用bash執(zhí)行腳本
        
    • 如果把腳本加了PATH,則可以用【文件名】 直接運(yùn)行,無論在那個(gè)目錄下

因此實(shí)際上所有命令都是可執(zhí)行文件娩脾,操作系統(tǒng)優(yōu)先找.exe可執(zhí)行文件赵誓,只不過都加了PATH可以直接運(yùn)行。

Git本地倉庫

Git是一個(gè)分布式版本控制系統(tǒng)柿赊,國內(nèi)有一個(gè)相似的叫做碼云

Git只能管理跟蹤文本文檔

基本命令

  1. git init ; 初始化俩功,會(huì)在當(dāng)前目錄生成一個(gè) .git文件夾,用來存放代碼快照碰声。

  2. .gitignore 文件用來保存不被提交的文件名诡蜓,描述哪些變動(dòng)不用提交

    • 常見有 node_moudules ; .DS_Store ; .idea ; .vscode
  3. git status ; 查看當(dāng)前文件的狀態(tài),會(huì)提示你哪些文件修改了沒有提交

    • git status -sb胰挑; 簡略狀態(tài)信息
  4. git add 路徑 ; 選擇哪些變動(dòng)是需要提交的蔓罚,路徑可以是相對(duì)路徑,也可以是絕對(duì)路徑瞻颂,. 或 *

  5. git commit -m 字符串 ; 提交并說明提交的描述豺谈,字符串如果有空格需要用引號(hào)包起來

  • git commit -v ; 提交的啰嗦版,運(yùn)行后打開vscode贡这,可以查看詳細(xì)的改動(dòng)茬末,并在添加版本描述后提交
  1. git log ;查看修改日志
  • git reflog ; 查看包括回滾的日志記錄
  1. git reset --hard 版本號(hào) ; 回滾到指定版本號(hào)的版本

    注意盖矫,在回滾之前要確保沒有add了之后沒提交的文件丽惭,否則會(huì)被刪除

  2. git branch 分支名 ; 基于當(dāng)前commit創(chuàng)建一個(gè)新的分支,在哪個(gè)分支提交辈双,代碼更新就在哪個(gè)分支

    • git branch 责掏;查看分支情況,并顯示當(dāng)前分支
  3. git checkout 分支名 ; 切換到另一個(gè)分支湃望,當(dāng)前的目錄有未提交的代碼换衬,只要跟另一個(gè)分支不沖突局义,就不用理會(huì),若有冗疮,可以用 git stash 或者合并沖突

  4. git merge 分支名 ; 把指定分支名的分支合并到當(dāng)前分支萄唇,可能會(huì)有沖突

  5. git branch -d 分支名 ; 刪除指定分支

沖突的解決

1.發(fā)現(xiàn)沖突

  • 在合并分支時(shí),會(huì)得到conflict提示
  • 使用 git status -sb 查看哪些文件沖突了

2.解決沖突

  • 依次打開每個(gè)文件
  • 搜素====四個(gè)等于號(hào)
  • 在上下兩個(gè)部分選擇要保留的代碼术幔,并刪除 ==== <<<< >>>>這些標(biāo)記
  • git add 對(duì)應(yīng)的文件
  • 再次git status -sb 另萤,解決下一個(gè)文件的沖突
  • 直到?jīng)]有沖突,運(yùn)行 git commit (不需要參數(shù))

注意: git add 處理的是文件的變化诅挑,而不是文件四敞,比如說刪除了一個(gè)文件,依然要用 git add 來提交到暫存區(qū)拔妥,之后基本只用 git add. 和 git commit -v ,其他很少用到忿危。

Github遠(yuǎn)程倉庫

github是一個(gè)基于git的代碼托管平臺(tái),付費(fèi)用戶可以建私人倉庫没龙,我們一般的免費(fèi)用戶只能使用公共倉庫铺厨,也就是代碼要公開。就是用來存儲(chǔ)代碼的一個(gè)平臺(tái)硬纤。

第一步生成 ssh key解滓,(用戶首次使用的情況下)
  1. Github幫助文檔 ; https://docs.github.com/en/github/authenticating-to-github/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

  2. 運(yùn)行 ssh-keygen -t rsa -b 4096 -C 你的郵箱

  3. 一直回車直到?jīng)]有提示

  4. cat ~/.ssh/id_ras.pub 得到公鑰內(nèi)容

  5. 打開Github,在設(shè)置頁面填入公鑰

  6. ssh -T git@github.com 查看是否成功

上傳代碼:
  1. 在github新建 GIthub Repo(repository 倉庫),復(fù)制其ssh地址

  2. 復(fù)制頁面里面的代碼

  3. git remote add origin 加上 ssh 的內(nèi)容 使本地倉庫與遠(yuǎn)程倉庫聯(lián)系起來筝家,方便以后進(jìn)行后續(xù)的提交等操作

  4. git push -u origin main(之前叫master) ; 含義如下

    • 這句話的意思是推送本地的main分支到遠(yuǎn)程倉庫的main分支

      • 這里有個(gè)坑洼裤,現(xiàn)在github新建的遠(yuǎn)程倉庫的默認(rèn)主分支名為main了

      • git push -f 強(qiáng)制推送,謹(jǐn)慎使用溪王,有可能會(huì)刪代碼

    • 如果提示應(yīng)該 git pull ,就 git pull 一下

    • git pull 是先把遠(yuǎn)程分支合并到本地當(dāng)前的分支

    • 如果遠(yuǎn)程分支沒有更新過腮鞍,才可以省略 git pull

    • -u origin main 的意思是設(shè)置上游分支,-u 選項(xiàng)執(zhí)行以下操作:對(duì)于每個(gè)最新或成功推送的分支莹菱,添加上游(跟蹤)引用移国,由無參數(shù)git pull和其他命令。所以呢芒珠,使用-u選項(xiàng)推送本地分支后桥狡,此本地分支將自動(dòng)與遠(yuǎn)程分支鏈接搅裙,并且您可以使用git pull而無需任何參數(shù)皱卓。

下載代碼:
  • git clone git@xxxxx[目標(biāo)路徑]

  • 如果是不同的機(jī)器,要上傳新的 ssh key (一個(gè)機(jī)器一個(gè)key)

  • cd 目標(biāo)路徑

  • git add / git commit / [git pull] / git push 四連操作

單獨(dú)下載某個(gè)分支:

  • 先下載整個(gè)倉庫部逮,然后git checkout 分支

  • 或者使用一些特殊命令

git clone 的變式:
  1. git clone git@?/xxx.git

    • 這是默認(rèn)的復(fù)制命令后的方式娜汁,會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)xxx文件夾

    • xxx/.git 就是本地倉庫

  2. git clone git@?/xxx.git yyy

    • 這樣會(huì)在本地新建一個(gè)yyy名字的目錄

    • yyy/.git 就是本地倉庫

  3. git clone git@?/xxx.git .

    • 最后有個(gè)點(diǎn),點(diǎn)前面有空格

    • 這種方式不會(huì)新建目錄兄朋,會(huì)在當(dāng)前目錄存放代碼和 .git

    • 因此最好再開始前進(jìn)入一個(gè)空的目錄

git rebase -i xxxxxx ; 美化歷史命令

通靈術(shù)

git stash 掐禁; 用來隱藏文件

git stash pop ; 將隱藏文件召喚出來

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子傅事,更是在濱河造成了極大的恐慌缕允,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蹭越,死亡現(xiàn)場離奇詭異障本,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)响鹃,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門驾霜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人买置,你說我怎么就攤上這事粪糙。” “怎么了忿项?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵蓉冈,是天一觀的道長权旷。 經(jīng)常有香客問我贯城,道長稀并,這世上最難降的妖魔是什么甸箱? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任趁蕊,我火速辦了婚禮猿推,結(jié)果婚禮上煮纵,老公的妹妹穿的比我還像新娘机错。我一直安慰自己褐捻,他們只是感情好掸茅,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著柠逞,像睡著了一般昧狮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上板壮,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天逗鸣,我揣著相機(jī)與錄音,去河邊找鬼绰精。 笑死撒璧,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的笨使。 我是一名探鬼主播卿樱,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硫椰!你這毒婦竟也來了繁调?” 一聲冷哼從身側(cè)響起萨蚕,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蹄胰,沒想到半個(gè)月后岳遥,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡裕寨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年寒随,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帮坚。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妻往,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出试和,到底是詐尸還是另有隱情讯泣,我是刑警寧澤,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布阅悍,位于F島的核電站好渠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏节视。R本人自食惡果不足惜拳锚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望寻行。 院中可真熱鬧霍掺,春花似錦、人聲如沸拌蜘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽简卧。三九已至兔魂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間举娩,已是汗流浹背析校。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留铜涉,地道東北人智玻。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像骄噪,于是被迫代替她去往敵國和親尚困。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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