日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Git和Github的学习

發布時間:2023/12/10 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Git和Github的学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

來源:

秦時明月NightTiger

Git和Github的學習

?

?

?

?

?

?

作者聲明:本博客中所寫的文章,都是博主自學過程的筆記,參考了很多的學習資料,學習資料和筆記會注明出處,所有的內容都以交流學習為主。有不正確的地方,歡迎批評指正。

本文學習視頻是:https://www.bilibili.com/video/av24736323

Git和Github的學習

?

關于Git和Github的相關知識綜述

1、版本控制

2、Git簡介

3、Git命令行操作

4、Git圖形化界面操作

5、Gitlab服務器環境搭建

1、 版本控制工具應該具備哪些功能

1.1、協同修改:多人并行不悖的修改服務器端的同一個文件。

1.2、數據備份:不僅保存目錄和文件的當前狀態,還能夠保存每一個人提交過的歷史狀態。

1.3、版本管理:再保存每一個版本的文件信息的時候要做到不保存重復數據,以節約存儲空間,調高運行效率,這方面SVN采用的是增量式管理的方式,而Git采取了文件系統快照的 方式。

1.4、權限控制:對團隊中參與開發的人員進行權限控制。對團隊開發者貢獻的代碼進行審核——Git獨有。

1.5、歷史記錄:查看修改人、修改時間、修改內存、日志信息。將本地文件恢復到某一個歷史狀態。

1.6、分支管理:循序開發團隊在工作過程中多條生產線同事推進任務,進一步提高效率。

?2、版本控制介紹

2.1、版本控制

工程設計領域中使用 版本控制管理工程藍圖的設計過程。在IT開發過程中也可以使用版本控制思想管理代碼的版本迭代。

2.2版本控制工具

思想:版本控制

實現:版本控制工具

集中式版本控制工具:CVS、SVN、VSS...

分布式版本控制工具:Git、Mercurial、Bazaar、Darcs(避免單點故障)

3、Git簡史

3.1Git發展歷程(略)

3.2Git官網:https://git-scm.com

3.3Git的優勢:

1)大部分操作在本地完成,不需要聯網

2)完整性保證

3)盡可能添加數據額而不是刪除或者修改數據

4)分值操作非常快捷流暢

5)與Linux命令全面兼容

3.4Git的安裝過程(略)

3.5Git的結構

?

3.6Git和代碼托管中心

代碼托管中心的任務:維護遠程庫

1)局域網環境下:Gitlab服務

2)外網環境下:Github? ?碼云

3.7本地庫與遠程庫

團隊內部協作

?

跨團隊協作

?4 Git 命令操作

4.1本地庫初始化

補充:在開始操作之前

Linux的操作命令:

ll? ?    ? ?查看當前目錄

ls -la? ? ?  查看當前目錄,帶隱藏資源的

ls -l|less  分屏查看

cd Git/  ? 進入到某一目錄

mkdir WeChat? ? 建立一個目錄叫做WeChat

git init    git初始化命令

pwd     是print working directory 命令顯示整個路徑名

ll .git/     顯示此目錄中? .git目錄下的文件有哪些 查看.git的目錄

cd ~     家目錄

1)命令: git add

2)效果:

?

3)注意:.git目錄中存放的是本地庫相關的子目錄和文件,不要刪除,也不要隨意修改。

?4.2 設置簽名

1)形式

用戶名:

Email地址:goodMorning@qq.com

2)作用:區分不同開發人員的身份

3)辨析:這里設置的簽名和登錄遠程庫(代碼托管中心)的賬號、密碼沒有任何關系

4)命令

  項目級別/倉庫級別:僅僅在當前本地庫范圍內有效

    git config user.name tom_pro

    git config user.email goodMorning@qq.com

    信息保存位置:? ?./.git/config 文件

 

?

  系統用戶級別:登錄當前操作系統的用戶范圍

    git config --global user.name tom_glb

    git config --global user.email goodMorning_glb@qq.com

    信息保存位置:? ~/.gitconfig? 文件

?

  級別優先級:

    就近原則:項目級別優先于系統用戶級別,二者都有時采用項目級別的簽名

    如果只有系統用戶級別的簽名,就以系統用戶級別的簽名為準

    二者都沒有不允許

?4.3 Git版本控制的操作

本節詳細內容:https://www.bilibili.com/video/av24736323/?p=12

git status

vim good.txt        新建一個txt文件

:wq            關閉文件

git add good.txt      將good.txt加入到暫存區

git rm --cached good.txt  將good.txt從暫存區里面移除

git commit good.txt    將good.txt提交

:set nu?    顯示行號

i? ? ? ? ? ? ? ? ? ? ? ? ?進入編輯模式

cat good.txt? ? ? ?顯示good.txt的內容

git reset HEAD good.txt? ? ? ? ? ?將good.txt改正沒有暫存

git commit -m "My second" good.txt? ?常用的 不用進入vim編輯器

?

基本操作總結:?

狀態查看?    gitstatus               查看工作區、暫存區轉臺

添加操作?   git add [file name]           將工作區的“新建/修改”添加到暫存區

提交操作   git commit -m "commit message" [file name] 將暫存區內容提交到本地庫

再次回顧

查看歷史記錄

git log? ? 最全內容

多屏顯示控制方式:

空格向下翻頁

b向上翻頁

q退出

?

git log --pretty=oneline

git log --oneline

git reflog

?

?HEAD@{移動到當前版本需要多少步}

?

前進后退歷史版本操作

基于索引值操作[推薦]

git reset --hard 索引值

?

使用^符號:只能后退到之前存在的版本

git reset --hard HEAD^? ? 一個^表示后退一步,n個表示后退n步

使用~符號:只能后退到之前的版本

git reset --hard~3  表示后退3步

?reset命令三個參數對比

--soft    僅僅在本地庫移動HEAD指針

--mixid   ? 在本地庫移動HEAD指針? ?重置暫存區

--hard    在本地庫移動HEAD指針? 重置暫存區? ?重置工作區

?

?

永久刪除文件后怎么恢復

rm aaa.txt 刪除文件

前提:刪除前,文件存在時的狀態提交到了本地庫

操作:git reset --hard [指針位置]

    刪除操作已經提交到本地庫:指針位置指向歷史記錄

    刪除操作尚未提交到本地庫:指針位置使用HEAD

?

比較文件差異

git diff [文件名]? ? ? git diff aaa.txt? ? ? 將工作區中的文件和暫存區進行比較

git diff[本地庫中歷史版本][文件名]? ?git diff HEAD aaa.txt

               git diff HEAD^ aaa.txt將工作區中的文件和本地庫歷史記錄比較

不帶文件名比較多個文件

?4.4分支管理

?什么是分支?

在版本控制過程中,使用多條線同時推進多個任務。

?

分支的好處:

同時并行推進多個功能開發,提高 開發效率

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

?分支操作:

創建分支? ?git branch [分支名]

查看分支? ?git branch -v

切換分支? git checkout [分支名]

合并分支? 第一步:切換到 接受修改的分支(被合并,增加新內容)上,git checkout [分支名]

    ? 第二步:執行命令? git merge [有新內容的分支]

?分支沖突?

沖突表現

沖突解決

第一步:編輯文件,刪除特殊符號

第二步:把文件修改到滿意的程度,保存退出

第三步:git add [文件名]

第四步:git commit -m "日志信息"

?    注意:此時commit一定不能帶具體文件

5、Git基本原理

5.1哈希?

哈希是一個系列的加密算法,各個不同的哈希散發雖然加密強度不同,但是有以下幾個共同點:

1)不敢輸入數據的數據量有多大,輸入同一個哈希算法,得到的加密結果長度固定。

2)哈希算法確定,輸入數據確定,輸出數據能夠保證不變

3)哈希算法確定,輸入數據有變化,輸出數據一定有變化,而且通常變化很大

?4)哈希算法不可以

Git底層采用的是 SHA-1 算法。

?5.2Git保存版本的機制

集中式版本控制工具的文件保存管理機制

?

Git的文件管理機制

?

?

Git文件管理機制細節

?Git的“提交對象”

提交對象及其父對象形成的鏈條

5.3Git分支管理機制

分支的創建

創建分支? ?git branch [分支名]

git branch hot_fix? 新建一個分支?

分支的切換

?git checkout [分支名]

?

?

6 GitHub

6.1 賬號信息

GitHub 首頁就是注冊頁面?https://github.com/

?cd ..? 上一級目錄

git remote -v

git remote add origin?https://github.com/xzzxqinlihui/huashan.git? 給遠程地址起別名

?git push origin master? ?推送 別名 分支

克隆:

git clone?https://github.com/xzzxqinlihui/huashan.git? 克隆

git origin [遠程地址]

?完整的把遠程庫下載到本地

創建origin遠程地址別名

初始化本地庫

?加入團隊的操作:https://www.bilibili.com/video/av24736323/?p=38

?

拉取

pull就是fetch + merge

git fetch [遠程庫的別名][遠程分支名]

git merge [遠程庫地址別名/遠程分支名]

git pull origin master

?

?git fetch origin master 從遠程庫中抓取

?解決沖突

第一步:如果不是基于Github遠程庫最先版本所做的修改,不能推送,必須先拉取。

第二步 :拉取下來后如果進入沖突狀態,則按照“分支沖突解決”操作解決即可。

?跨團隊協作:https://www.bilibili.com/video/av24736323/?p=41

?

?

?

本地修改,然后推送到遠程

pull request

?

?

?

?

對話

?

?

審核代碼

合并代碼

將遠程庫 拉取到 本地庫

?SSH登錄:https://www.bilibili.com/video/av24736323/?p=42

7.Eclipse操作?

eclipse中的git插件

?7.1工程初始化為本地庫

操作流程: 工程=>右鍵=>Team=>Share Project=>Git=>Next

勾選對話框

?會出現如下圖所示對話框

?

Finish

7.2Eclipse中忽略文件

概念:Eclipse待定文件

這些都是Eclipse為了管理我們創建的工程而維護的文件,和我們開發的代碼沒有直接關系,最好不要在Git中進行追蹤,也就是把它們忽略。

.classpath文件

.project文件

.settings目錄下所有文件

為什么要忽略Eclipse特定文件呢?

同一個團隊中很難保證大家來使用相同的IDE工具,而IDE工具不同時,相關工程待定文件就有可能不同。如果這些文件加入版本控制,那么開發時很可能需要為了這些文件解決沖突。

?

?

?

?

?

?

?

?

?

7.4 Oxygen Eclipse 克隆工程操作

?import...導入

?

?

?

?

?

?

?

?

?

?

8.Git工作流

8.1概念

在項目開發過程中使用Git的方式

8.2分類

集中式工作流

像SVN一樣,集中式工作流以中央倉庫為項目所有修改的單點實體。所有修改都是提交到Master這個分支上。

這種方式與SVN的主要區別就是開發人員有本地庫,Git很多特性并沒有用到。

GitFlow工作流

GitFlow工作流通過為功能開發,發布準備和維護設立獨立的分支,讓發布迭代過程更流暢。嚴格的分支模型也為大型項目提供了非常必要的結構。

?

Forking工作流

Forking工作流是在GitFlow基礎上,充分利用了Git的Fork和pull request的功能已達到代碼審核的目的,更適合安全可靠的管理大團隊的開發者,而且能接受不信任貢獻者的提交。

8.3GitFlow工作流詳解

分支種類

Git工作流:https://www.bilibili.com/video/av24736323/?p=54

實戰

具體操作

創建分支

?命名

?

切換分支

遠程的分支

點擊

檢出遠程的新分支

?

切換回master

?

合并分支

?選擇分支

合并結果

推送到遠程

合并成功后,將master推送到遠程

9 Gitlab服務器搭建過程

詳細過程:?https://www.bilibili.com/video/av24736323/?p=57

轉載于:https://www.cnblogs.com/LXL616/p/10666286.html

總結

以上是生活随笔為你收集整理的Git和Github的学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。