Github簡介
github是通過Git進行版本控制的軟體源代碼托管服務平臺,于2008年4月10日正式上線,github除了Git代碼倉庫托管及基本的Web管理界面以外,它還提供了一些方便社會化共同軟體開發的功能,即一般人口中的社群功能,包括允許用戶追蹤其他用戶、組織、軟體庫的動態,對軟體代碼的改動和bug提出評論等,
概述
什么是Git
Git是一個免費、開源的版本控制軟體
什么是版本控制系統
版本控制是一種記錄一個或若干個檔案內容變化,以便將來查閱特定版本修訂情況的系統,(記錄檔案的所有歷史變化、隨時可恢復到任何一個歷史狀態、多人協作開發或修改錯誤恢復)
什么是Github
Github是全球最大的社交編程及代碼托管網站(https://github.com/),
Github可以托管各種git庫,并提供一個web界面(用戶名.github.io/倉庫名)
Github和Git是什么關系
Git是版本控制軟體
Github是專案代碼托管的平臺,借助git來管理專案代碼
為什么學習github
學習優秀的開源專案
關注行業前輩了解最新的行業動態
借助github托管專案代碼
一.基本概念
倉庫(Repository):存放專案代碼,多個開源專案存放多個倉庫,
收藏(star):收藏專案,
復制克隆專案(fork):該fork的專案時獨立存在的,復制過來自己用
發起請求(Pull request):你新增了功能,覺得不錯,想和原本專案一起
關注(watch):關注別人專案,及時收到更新的訊息,
事物卡片(lssue):發現代碼BUG,但是目前沒有成型代碼,需要討論時用,
主頁:(1)github(2)倉庫(3)個人
1、四個作業區域
Git本地有四個作業區域:作業目錄(Working Directory)、暫存區(Stage/Index)、資源庫(Repository或Git Directory)、git倉庫(Remote Directory),檔案在這四個區域之間的轉換關系如下:

Workspace: 作業區,就是你平時存放專案代碼的地方
Index / Stage: 暫存區,用于臨時存放你的改動,事實上它只是一個檔案,保存即將提交到檔案串列資訊
Repository: 倉庫區(或版本庫),就是安全存放資料的位置,這里面有你提交到所有版本的資料,其中HEAD指向最新放入倉庫的版本
Remote: 遠程倉庫,托管代碼的服務器,可以簡單的認為是你專案組中的一臺電腦用于遠程資料交換
2、作業流程
git的作業流程一般是這樣的:
1、在作業目錄中添加、修改檔案;
2、將需要進行版本管理的檔案放入暫存區域;
3、將暫存區域的檔案提交到git倉庫,
因此,git管理的檔案有三種狀態:已修改(modified),已暫存(staged),已提交(committed)
3、檔案的四種狀態
版本控制就是對檔案的版本控制,要對檔案進行修改、提交等操作,首先要知道檔案當前在什么狀態,不然可能會提交了現在還不想提交的檔案,或者要提交的檔案沒提交上,
GIT不關心檔案兩個版本之間的具體差別,而是關心檔案的整體是否有改變,若檔案被改變,在添加提交時就生成檔案新版本的快照,而判斷檔案整體是否改變的方法就是用
SHA-1演算法計算檔案的校驗和,

Untracked: 未跟蹤, 此檔案在檔案夾中, 但并沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.
Unmodify: 檔案已經入庫, 未修改, 即版本庫中的檔案快照內容與檔案夾中完全一致. 這種型別的檔案有兩種去處, 如果它被修改, 而變為Modified.
如果使用git rm移出版本庫, 則成為Untracked檔案
Modified: 檔案已修改, 僅僅是修改, 并沒有進行其他的操作. 這個檔案也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過,
回傳到unmodify狀態, 這個git checkout即從庫中取出檔案, 覆寫當前修改
Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的檔案和本地檔案又變為一致, 檔案為Unmodify狀態. 執行git reset HEAD filename取消暫存,
檔案狀態為Modified
下面的圖很好的解釋了這四種狀態的轉變:

新建檔案--->Untracked
使用add命令將新建的檔案加入到暫存區--->Staged
使用commit命令將暫存區的檔案提交到本地倉庫--->Unmodified
如果對Unmodified狀態的檔案進行修改---> modified
如果對Unmodified狀態的檔案進行remove操作--->Untracked
二、四個區域常用命令
1、新建代碼庫
# 在當前目錄新建一個Git代碼庫 git init # 新建一個目錄,將其初始化為Git代碼庫 git init [project-name] # 下載一個專案和它的整個代碼歷史 git clone [url]
2、查看檔案狀態
#查看指定檔案狀態 git status [filename] #查看所有檔案狀態 git status
3、作業區<-->暫存區
# 添加指定檔案到暫存區 git add [file1] [file2] ... # 添加指定目錄到暫存區,包括子目錄 git add [dir] # 添加當前目錄的所有檔案到暫存區 git add . #當我們需要洗掉暫存區或分支上的檔案, 同時作業區也不需要這個檔案了, 可以使用(??) git rm file_path #當我們需要洗掉暫存區或分支上的檔案, 但本地又需要使用, 這個時候直接push那邊這個檔案就沒有,如果push之前重新add那么還是會有, git rm --cached file_path #直接加檔案名 從暫存區將檔案恢復到作業區,如果作業區已經有該檔案,則會選擇覆寫 #加了【分支名】 +檔案名 則表示從分支名為所寫的分支名中拉取檔案 并覆寫作業區里的檔案 git checkout
4、作業區<-->資源庫(版本庫)
#將暫存區-->資源庫(版本庫) git commit -m '該次提交說明' #如果出現:將不必要的檔案commit 或者 上次提交覺得是錯的 或者 不想改變暫存區內容,只是想調整提交的資訊 #移除不必要的添加到暫存區的檔案 git reset HEAD 檔案名 #去掉上一次的提交(會直接變成add之前狀態) git reset HEAD^ #去掉上一次的提交(變成add之后,commit之前狀態) git reset --soft HEAD^
5、遠程操作
# 取回遠程倉庫的變化,并與本地分支合并 git pull # 上傳本地指定分支到遠程倉庫 git push
6、其它常用命令
# 顯示當前的Git配置 git config --list # 編輯Git組態檔 git config -e [--global] #初次commit之前,需要配置用戶郵箱及用戶名,使用以下命令: git config --global user.email "[email protected]" git config --global user.name "Your Name" #調出Git的幫助檔案 git --help #查看某個具體命令的幫助檔案 git +命令 --help #查看git的版本 git --version 復制代碼
參考于 https://www.cnblogs.com/best/p/7474442.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/79395.html
標籤:Python
下一篇:模板之自定義標簽、過濾器
