Git 學習

Git學習

管理本地倉庫

此學習將會使用git軟件進行編輯,即git-bash.exe文件,這里主要使用命令行進行編輯,主要是為了方便以后在linux系統中使用命令行進行操作

前提

  • 安裝git
  • 擁有GitHub賬號

本地git的初始化

  1. 設置用戶名

    git config --global user.name'用戶名'
    
  2. 設置用戶名郵箱

    git config --global user.email "你的郵箱"
    
  3. 查看設置

    git config --list
    

    可以查看當前文件夾的設置,包括用戶名和郵箱,以及后面的倉庫信息

  4. 在當前文件下創建新文件夾(實例為test文件夾)

    mkdir test
    

    當然也可以在文件系統中右擊創建

  5. 在文件內初始化git(創建git倉庫)

    cd test
    

    進入當前目錄下的剛新創建的test文件夾

    git init
    

    初始化,即在當前文件夾下創建一個.git的隱藏文件夾

    此時,剛建的test(示例)就成為了一個git repository(倉庫)

嘗試使用git本地倉庫

  • 創建文件

    touch a1.java
    
  • 查看當前文件夾狀態(查看當前是否有文件需要commit)

    git status
    

向本地倉庫中添加文件的流程

git倉庫分級.png

git status

查看文件情況

git add xxx.java

從工作區上傳到暫存區

git commit -m "描述" (文件)

從暫存區上傳到git倉庫,在-m后添加相關的文字描述

詳解

  1. 當文件夾中出現新文件時,使用git status會出現紅色的未提交的文件(即新文件)
  2. 然后使用 git add 新文件 后,再使用git status會出現綠色的提示: new file: 新文件,此時文件到達暫存區
  3. 再使用 git commit -m '提示信息' ,回車后會把文件上傳到git倉庫

修改本地倉庫文件

vi 文件名

編輯修改該文件

cat 文件名

查看該文件

git diff [文件名]

比較該文件的工作區和暫存區

不帶文件名可以比較多個文件

git diff HEAD 文件名

比較工作區和本地倉庫

git diff [本地庫的歷史版本] [文件名]

比較工作區和本地庫某個版本

詳解

  1. 使用 v1 文件名 修改文件后,使用 git status 查看倉庫狀態時會出現紅色的 modified: 文件名
  2. 然后使用 git add 文件名 后,再使用 git status 查看倉庫狀態時會出現綠色的 modified: 文件名(添加到暫存區
  3. 再使用 git commit -m '提示信息' ,回車后會把文件上傳到git倉庫

刪除本地倉庫文件

rm 文件名

刪除該文件,是正常寫法

rm是remove的意思,也有 rm -rf 文件名 的寫法,

后面的參數r是recursive遞歸循環,f是force強制不確認

rm -i 文件名 為刪除前出提示, rm -l 文件名 是刪除三個以上時才出提示

git rm 文件名

從暫存區中刪除文件

  1. 使用 rm -rf 文件名 刪除文件后,使用 git rm 文件名暫存區刪除文件
  2. 再使用 git commit -m '提示信息' ,回車后git倉庫也會刪除文件

管理Git遠程倉庫

使用遠程倉庫的目的

作用:備份,實現代碼共享和集中化管理

[圖片上傳失敗...(image-79661-1559201388014)]

Git 克隆操作

目的

將遠程倉庫(github對應的項目)復制到本地

  • 完整的把遠程庫下載到本地
  • 創建 origin 遠程地址別名(可以使用別人起的別名)
  • 初始化本地倉庫

代碼

git clone 倉庫地址

倉庫地址

克隆地址.png

注意要到已經初始化的文件夾下克隆

同時可以讓本地倉庫記住倉庫地址

git remote add 別名 倉庫地址

起好別名后,可以通過

git remote -v

查看別名和對應的倉庫地址

修改后提交到遠程倉庫

git push (別名 節點)

  1. 修改或添加文件
  2. git add 文件名 提交到暫存區
  3. git commit -m '描述' 提交到本地倉庫
  4. git push 提交到遠程倉庫

邀請別人加入團隊

到倉庫的setting-Collaborators中輸入成員的名字

抓取遠程倉庫的修改

pull = fetch + merge

git fetch 別名 分支
git merge 別名/分支

所以可以使用另外的方法pull

git pull 別名 分支

出現沖突

  1. 如果不是基于GitHub遠程庫的最新版所做的修改,不能推送,必須先拉取
  2. 拉取下來后如果進入沖突狀態,則按照“分支沖突管理”操作解決即可

Github Pages 搭建個人網站

訪問

https://用戶名.github.io

搭建個人站點

  1. 創建個人站點

    新建倉庫(倉庫名必須是 用戶名.github.io

  2. 在倉庫下新建index.html的文件即可

    作為首頁

    這樣訪問 https://用戶名.github.io 就能訪問 index.html 了

注意github僅支持靜態網頁,且倉庫里只能是.html文件

搭建項目站點(Project Pages)

  1. 進入項目主頁,進入 settings

  2. 在 settings 頁面,點擊 Launch automatic page generator (位于下方)

    會進入主題頁面,同時可以編輯

  3. 生成網頁

其他git指令

查看信息

git log

commit ######### (HEAD -> master)

####代表該版本的索引,可以根據索引值進行版本操作

HEAD代表當前版本,指向master分支

(按空格可以翻頁 b向上翻頁 q退出)

git log --pretty=oneline

以一行一條信息的方式顯示

git log --oneline

更簡潔的顯示(只顯示當前版本后面的版本)

git reflog

能提示版本回溯需要的步數(能顯示所有歷史記錄)

更改版本

基于索引值操作(推薦)

git reset --hard 索引值
  1. 可以先用 git log 查看版本對應的索引值(局部索引值也可以)
  2. 再用 git reset --hard 索引值 把版本定在該索引值的版本下

使用^符號(只能往后)

git reset --hard HEAD^

退到后面一個版本

一個代表后退一個,幾個代表后退幾個版本

使用~符號

git reset --hard HEAD~數字

數字是多少代表后退多少步

reset參數

  • --soft

    git reset --soft 僅移動本地倉庫的指針

  • --mixed

    git reset --mixed 僅移動本地倉庫和暫存區的指針

  • --hard

    git reset --hard 能移動本地倉庫、暫存區和工作區的指針

幫助命令

git help 想查詢的命令

Git的分支

在版本控制中,使用多條線同時推進對個任務(多個功能的開發)。

各個分支在開發的過程中,如果某一個分支開發失敗,不會對其他分支有任何影響,失敗的分支刪除重新開發即可

不同分支間的關系.png

分支的相關操作

查看所有分支

git branch -v

創建該分支

git branch 分支名

切換分支

git checkout 分支名

合并分支(被合并)

  1. 切換到接受修改的分支上,用 git checkout 分支1 切換

  2. 執行 merge 命令

     git merge 分支2
    

    分支2就合并到分支1中

解決沖突

合并時可能出現兩個分支行不一致,導致合并失敗,此時需要手動合并

  1. 打開沖突文件( vim 文件名

    可能會出現下面的沖突(案例)

    合并出現沖突.png
  1. 刪去沖突符號,修改文件(或者留下適合的那一行)

  2. 執行 git add 文件名git commit -m "描述" 合并到本地倉庫中

    注意描述后不能帶文件名

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,546評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,570評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,505評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,017評論 1 313
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,786評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,219評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,287評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,438評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,971評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,796評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,995評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,540評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,230評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,662評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,918評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,697評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,991評論 2 374