Git Github

課程目標

  • 知道 GitHub 和 Git分別是什么,有什么作用
  • 熟悉Git 的基本使用,能使用 Git 向 GitHub 提交代碼

命令行與Git

1. 什么是命令行

  • GUI(Graphical user interface)圖形界面,例如QQ登錄界面
  • Cli(Command-line)命令行,例如windows開機代碼界面
  • Windows回車用兩個字符表示(文本上移10+換行13)-next line + return
  • Windows V.S. Linux
    相同點:都是用Command-line來與系統進行交互
    不同點:命令基本都不一樣
    Windows:cmd(默認)、PowerShell
    Linux:Terminal、iTerm(Mac)

2.常用命令

  • pwd 當前所處目錄(當前路徑的全稱)。
  • ls 當前目錄下的所有文件都被打開(列出)。
  • ls -a 相較于ls會多出以.開頭的文件,./ ../.開頭的文件可做隱藏文件。
    ./即當前目錄;../即上一層目錄。/可以省略
    ls ./ 把當前目錄的列表打開
    ls ../ 把上一層目錄的列表打開
  • ls -l 當前目錄下所有文件的具體信息
    drwxr-xr-x 1 hahadekuai 197121 3528024 十二 15 03:56 12306Bypass_1.10.74/
    d 目錄
    rwx 管理員對它的權限
    xr-x 用戶組對它的權限
    xr-x 當前用戶對它的權限
    hahadekuai 誰擁有它
    35028024 它的大小,352多k
    十二 15 03:56 時間
    12306Bypass_1.10.74 文件名
  • cd 切換目錄
    ~ 表示當前用戶的根目錄
    cd .. 切換到上一層目錄
    cd+文件名前綴+tab自動補全文件名+回車。跳轉到自動補全的目錄
  • mkdir 創建目錄。
    madir+ 文件夾名 創建文件夾
    touch+ 文件名 創建文件
  • mkdir -p 同時創建多個文檔
    mkdir -p a/b/c 同時創建a、b、c三個文檔
  • rm
    rm+ 文件名 刪除文件
    rm -rf+ 文件夾名 刪除文件夾
  • mv 重命名
    mv frank frank2
    1.mkdir frank
    mv frank frank2 移動frank文件到frank2
    2.mkdir frank;mv frank frank2 創建frank文件,將frank重命名為frank2
    mkdir frank && mv frank frank2
    ; 與 && 間區別:
    ; 是一個命令一個命令去執行,即使前面的命令錯誤,后面的命令一樣會生成
    && 是前面的命令必須要成功,后面的命令才能運行
  • cp 復制
    cp a b 把a復制成b
  • echo
    echo 1 > test.txt 把1的內容打到test.txt文件中
  • cat
    cat test.txt 把test.txt文件中內容顯示出來
    瀏覽方法可用cat test.txt | less 用J K操作上下;按Q退出
    | 管道,前面的命令傳給后面的命令
  • head 顯示命令的前幾行
    head -n 3 test.txt 顯示test.txt.文本中前三行
  • tail 顯示命令的尾幾行,用法同head
  • du -sh 顯示目錄大小(多少k)
  • man xxx man閱讀xxx手冊
    man ls 閱讀ls的手冊(與 -h; --help相同)
  • xxx -h 不是總被接受
  • xxx help
    ls --help | less 閱讀ls的幫助文檔
  • path 告訴命令行去哪找命令(特殊使用方法,在計算機高級設置path環境變量中,在/user/bin后面+;文件名
    which ls 告知ls在哪里
  • 命令行的使用規則:
    命令行 子命令 -p --param --param2=xxx
    參數里有空格加引號
    大小寫敏感(Windows不區分)
  • vivim
    輸入:i(進入可編輯模式)
    退出:ESC:qw 或 ESC ZZ
    新手最常見的問題:怎么退出vim?輸入:,write保存;再輸入:quit。縮寫:wq

小技巧:

  • alt+. 重復輸入過的參數
  • !! 重復上一層命令
  • . 當前目錄
  • .. 上一層目錄
  • “ ” 告知是一個整體,參數中有空格是加引號
  • ~ 當前所處目錄
  • - 回到上一層目錄,同..
    cd - 同 cd .. 返回上一層目錄
  • 復制與粘貼 可用鼠標中鍵

Git命令

git簡明指南

1.本地倉庫(本地操作)

Git0.png
Git1.png
Git2.png
  • git中紅色表示不能被提交,綠色表示可以被提交。
  • git add . 添加所有.開頭的文件
    git add * 添加所有除了.開頭的文件
    add 文件是add本次狀態與上次狀態之間的差別(變動);兩次add顯示的是第二次add的狀態
    add的是文件的改動,add也會有開啟文件跟蹤的效果
  • commit 提交;把add過的變動提交到本地倉庫中
  • git commit -m "本次提交內容的敘述" 一次提交多個add過的文件,- m "xxx"可跳過vi編輯界面。
  • git commit -v -v會列出所有變更
    git commit -v --amend
  • commit后文件會被存儲到head.git本地倉庫
  • git checkout -- readme.txt 丟棄工作區修改(撤銷命令)
  • git checkout -b dev 切換dev分支
  • git diff readme.txt 查看的是readme.txt上一次add后,對其修改的內容;如修改后add到暫存區,則不會顯示修改內容。
  • git log --pretty=oneline 查看提交記錄(簡短的)
  • git reflog 十六進制編碼 查看命令記錄,尋找commit id,用于恢復記錄。
  • git reset --hard 十六進編碼 回退版本
  • git reset HEAD readme.txt 把暫存區(add過的文本)的修改撤銷,重放回工作區 之后用git checkout -- readme.txt,丟棄工作區修改
  • git checkout -- readme.txt 一種是readme.txt自修改后還沒有被放到暫存區,現在,撤銷修改就回到和版本庫一模一樣的狀態; 一種是readme.txt已經添加到暫存區后,又作了修改,現在,撤銷修改就回到添加到暫存區后的狀態。 總之,就是讓這個文件回到最近一次git commit或git add時的狀態。 --存在是為撤銷修改,不填寫--則為切換分支
  • 刪除文件的兩種情形:
    一、一般情況下,直接在文件管理器中把沒用的文件刪了,或者用rm命令刪了。從版本庫中刪除文件分三步: 1.rm test.txt 2.git rm test.txt 3.git commit -m "remove test.txt"
    二、刪錯了,想要恢復版本庫的文件: git checkout -- test.txt

2.遠程倉庫(推送改動)

Git遠程單人操作:

方法一:
1.empty repo(github上) 2.git clone 3.touch README.me 4.git add 5.git commit 6.git push

  • git clone +(https or ssh) 將遠程倉庫克隆到本地
  • git status 查看當前目錄文件狀態 git status -s (同git status --short) 簡短查看 git status -b 顯示在哪個分支上 git status -sb 以上兩步的簡寫(綠色是本地分支,紅色是遠程分支)
  • origin 默認遠程倉庫倉庫名
    master 默認默認分支名
    本地的分支名和對應遠程的分支名可以不同
    git remote add origin+git@github.com:fantasy-hub/test2.git 添加遠程倉庫
  • git push origin master:master 本地的master(前)分支push到遠程的master(后)分支 origin倉庫中

方法二:
1.mkdir test2 2.git init 3.touch README.md (vi README.md ) (cat README.md) 4.git add . 5.git commit . 6.git push --set-upsteam origin master (git push -u origin master 本地的master(前)分支push到遠程的master(后)分支 origin倉庫中 加上了-u參數,Git不但會把本地的master分支內容推送的遠程新的master分支,還會把本地的master分 支和遠程的master分支關聯起來,在以后的推送或者拉取時就可以簡化命令。)

Git遠程多人操作

1.git push 2.UU README.md 這個文件沖突了 3.解決沖突:==== <<<< >>>> 4.git add . 5.git commit . 6.git push

  • git reset --hard HEAD
  • git pull 把GitHub的代碼下載到Git上
  • git status -sb 運行提示UU為沖突
    解決沖突的方法:
    1.vi README.me 去搜索====
    2.往上找<<<<本地沖突的部分,往下找>>>>遠程沖突的部分
    之間的內容為本地和遠程的沖突
  • git pullgit fetch區別:git fetch只同步倉庫內容,對index中內容不做處理
    優點:可以不關心沖突
  • git merge origin/master 把遠程的master分支合并到當前

總結:
1.git clone 2.git pull 3.解決沖突 4.git push 解決沖突后又回到單人操作

1.git init 2.git add . 3.git commit . 4.git push( -u origin master)

新建遠程分支

1.git branch feature1 新建feature1分支 git branch 查看分支,出現: feature1 *master *表示當前所在分支 2.git checkout feature1 切換到feature1分支 git branch 查看分支 3.git push origin feature1:feature1 把本地的feature1(前)push到遠程的(feature1) 或 git push -u origin feature1 合并分支 4.git checkout master 切換到主分支 5.git merge feature1 合并分支 刪除分支-本地分支 6.git branch -d feature1 刪除分支 強制刪除用D 7.git brach -a 可以查看所有的包括遠程的分支(綠色是本地分支,橙色是遠程分支) 刪除分支-遠程分支 8.git push origin :feature1 本地不寫分支名,把空分支推送到feature1

重置

  • git reset 只要commit過,就不會丟失。即使reset --hard過
  • git reflog 恢復

3.GitHub

  • GitHub是負責托管Git的遠程倉庫

GitHub生成SSH key的方法

  • 創建倉庫,如果要使用Use SSH,需要上傳ssh public key
    方法:
    1.點擊右上角頭像,選中Settings
    2.左邊出現一列選項,選中SSH and SSH keys
    3.右上角點擊New SSH key (可利用谷歌搜索:coding.net 生成 ssh key。選中搜索結果第一個—SSH公鑰配置 - Coding)
    4.在生成工鑰欄中,復制代碼ssh-keygen -t rsa -b 4096 -C "your_email@example.com",添加到git中,連敲三個回車
    5.在代碼Your public key has been saved in /c/Users/Administrator/.ssh/id_rsa.pub.行中,選中后半部分復制。在git中輸入:cat /c/Users/Administrator/.ssh/id_rsa.pub 回車
    6.出現ssh-rsa引導的很長的代碼——復制到github的key文本框中
    全流程:
    use-ssh-key流程.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,923評論 6 535
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,740評論 3 420
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,856評論 0 380
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,175評論 1 315
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,931評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,321評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,383評論 3 443
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,533評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,082評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,891評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,067評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,618評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,319評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,732評論 0 27
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,987評論 1 289
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,794評論 3 394
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,076評論 2 375

推薦閱讀更多精彩內容