一、Git是什么?
Git是一個開源的分布式版本控制系統。
1、什么是版本控制?
字面意思,控制版本,存儲、追蹤目錄和文件的修改歷史。市面上有各式各樣的版本控制工具,比較常用的SVN、Git等等。
2、什么叫“分布式”版本控制?
(1)集中式:版本庫存放在中央服務器
(2)分布式:沒有中央服務器,版本庫存在每個人自己的計算機上
3、概念
(1)工作目錄(工作區,Woring Directory):執行git init的那個文件夾(linux上叫目錄),里面有個.git目錄
(2)版本庫(Repository):工作區中的隱藏目錄.git
版本庫里有什么?
① 暫存區(stage或者index)
git add——把文件修改添加到暫存區
git commit,把暫存區的內容提交到當前分支(當前head指向的這個分支)
需要commit的文件事先全部放在暫存區->執行一次commit,全部提交->暫存區清空
② ....
(3)遠程倉庫:可以理解為“中央服務器”,遠端的倉庫
(4)本地倉庫:你自己電腦上的倉庫
(5)git倉庫文件的兩種狀態:
① 被跟蹤的(Tracked files):那些已經被提交到本地倉庫的文件
② 未被跟蹤的(Untracked files):那些未被提交到本地倉庫的文件。比如,你在工作目錄里新建一個文件,但是並沒有執行add操作,所以當前此文件並不在本地倉庫中,自然不被跟蹤。
運行git status可以查看當前git倉庫的狀態
二、GitHub是什么?
首先它是一個免費的遠程倉庫,可以托管你的代碼,同時,也是一個開源協作社區,可以讓廣大人民群眾共同參與開發。
1、如何托管代碼?
(1)點擊“+”可以創建一個新的倉庫
(2)法1:git clone 到你自己的計算機中的某個目錄(工作區)
法2:利用Git Bash,用命令行操作。
① 若本地還沒有倉庫,git init一個—>把代碼放進去,git add、git commit—>git remote add origin git@github.com:userName/gitName.git—>git push
② 若本地有倉庫,第一步就可以省了
2、如何修改別人的代碼
(1)Fork開源倉庫
以https://github.com/poise/python 為例,在項目主頁可以看到作者的倉庫地址 https://github.com/poise/python.git,但是你不能直接克隆作者的這個倉庫地址,因為你沒有權限推送修改。點擊“Fork”在自己的賬號下克隆一個倉庫
(2)clone自己的倉庫地址 git@github.com:UserName/python.git,再克隆到本地計算機進行一系列修改,之后再推送自己的GitHub倉庫上
(3)在GitHub上發起一個pull request,若對方接受就接受,不接受就算了...........
四、git操作
1、創建一個本地倉庫,並托管在GitHub上,push文件
從GitHub克隆一個倉庫,不用git init,也可以創建一個本地倉庫
2、分支控制
HEAD指針:指向的是當前分支
master分支:主分支
新建分支dev,創建dev指針,dev指針指向master相同的提交,HEAD指向dev
合並分支:在dev上修改,之后把dev合並到master上——將master指針指向dev的當前提交
刪除分支:刪除dev指針