github賬號註冊
開啟網址github,註冊賬號,沒什麼好說的。
repository
簡介
repository 譯為倉庫或者版本庫,其實就是一個目錄,這個目錄中的所有檔案都被git管理,不管你做什麼操作都會被記錄,包括:增加、刪除、修改檔案等,都會被記錄下來,以便後來跟蹤與修改相關記錄,甚至被還原。
新建repository
很簡單github主頁點加號
常見操作
主要操作有 fork,fetch,clone,add,commit,push,pull,pull request,checkout 其主要含義如下圖所示:
本地配置git
操作簡介
remote:指存放在遠端的一個計算機,在一般指GitHub伺服器。
clone:指克隆,將github上的專案克隆(也可以說是複製)到自己的電腦上。
origin:指遠端的程式碼倉庫(自己的倉庫),即原始檔。
upstream:指上游,fork別人專案的地址,別人的專案就是你的上游,即上一層原始檔。
master:指主分支。
pull:指拉程式碼,把你Github上的遠端倉庫拉到本地計算機上。
push:指提交程式碼,把你本機上的專案提交到Github上的遠端倉庫。
特別注意:本地的 .git檔案是指本地倉庫,.git目錄下存放著所有檔案的版本和關聯資訊,該目錄在預設條件下是隱藏的。
1. git 安裝和配置
安裝就不說了,下載與系統相應的版本,預設安裝即可。開啟gitbash,下面兩個命令驗證是否安裝成功。
git --version
git
配置名字和郵箱
git config --global user.name ""
git config --global user.email ""
2. git bash命令列操作
語句 | 含義 |
---|---|
git | 檢視是否安裝 |
git config –list | 檢視配置,初次執行必須配置姓名郵箱(下一條),以後可修改 |
git config –global user.name “my name” | 配置名字,同樣方法配置郵箱,–global是設定該配置適用範圍,屬於系統級的命令 可以百度,git先用著這一個 |
git init | 建立工作區目錄,cd進去執行這條,此目錄就成了空倉庫(不是版本庫)mac用Command+Shift+. 顯示隱藏的 .git資料夾 |
git add | 三個概念:工作區1剛建立的目錄,暫存區2 .git裡stage資料夾,真正的版本分支3 裡master資料夾 add是把1內容複製到2 |
git commit -m “abc” | 把 2內容剪下到3,同時加註釋 abc,可以不加 |
git status | 檢視倉庫狀態,一定理解上面三概念,看狀態內容就懂了 |
git diff | 比較 1 和 3 的區別 |
git log | 檢視commit記錄(每條記錄有不規則id,作者,郵箱,日期 |
HEAD | 當前版本,上一個是HEAD^,上上 HEAD^^,上100 HEAD~100 |
git reset –hard HEAD^ | 檔案跳到某版本,hard後是版本名,可以用HEAD系列表示,可以直接輸commit id,見git log.輸id只需輸前幾位 |
git reflog | 超級簡潔的展示所有版本(含id,HEAD,操作註釋),git log是當前控制檯有的記錄 |
git checkout – name | 還原操作,情況a. 1改了(包括刪除,修改內容等),2空 3沒改 則 賦值 1 = 3 情況b. 1改完add到2了,1又改了,3啥沒改 則賦值 1 = 2 |
git rm name | 從版本庫移除name檔案 |
git remove add origin git@github.com:a/b.git | 關聯本地與遠端庫,a/b代表GitHub賬戶名/倉庫名 |
git push -u origin master | 把本地庫的master資料夾(分支)內容推送到遠端庫,第一次推送加-u 以後不用了 |
git pull 遠端主機名 遠端分支名:本地分支名 | 從另一個儲存庫或本地分支獲取並整合(整合),去掉三個名字是取主機分支與當前分支合併,等於下面兩句 |
git fetch origin | 獲取origin分割槽 |
git merge origin/YiGeFenZhi | 把它與當前分支合併 |
git clone git@github.com:a/b.git | 多人協作開發,那麼每個人從遠端克隆一份 |
git branch dev | 建立新分支 |
git checkout dev | 切換到分支dev,然後正常的 add、commit |
git checkout -b dev | 建立並切換到新分支dev |
git branch | 檢視當前分支,前面有*的是當前的 |
git merge dev | 切換到master,用這條命令合併 |
git merge –no-ff -m “merged” dev | 合併 且建立新的commit |
git branch -d dev | 合併後刪除dev |
git stash | 儲存當前工作現場,不add,不commit |
git stash list | 檢視之前的工作現場 |
git stash apply stash@{0} | 恢復list裡的現場0,不寫stash@{0}也可以 |
git stash drop | 刪除原 stash |
git stash pop | 恢復最近的現場,刪除原stash |
git branch -D dev | 強行刪除一個沒有被合併過的分支 |
git remove | 檢視遠端庫的資訊 ,加 -v更詳細 |
git push origin dev | origin是遠端庫的預設名 ,dev是要推送的分支。master和開發分支必須時刻同步 |
git tag v1.5 | 給最新提交的commit上一個標籤 |
git tag v1.4 a453fs2413 | 給對應id的commit打標籤 |
git tag | 檢視標籤(按字元排序) |
git tag -a v0.1 -m “released” 3628164 | 帶有說明的標籤,用-a或-s分別指定普通、私密標籤名,-m指定說明文字 |
git show v1.5 | 檢視標籤的詳細資訊 |
git tag -d v1.2 | 刪除標籤 |
git push origin v1.0 | 建立的標籤預設儲存在本地,這個是推送某個標籤到遠端,全部是 –tags |
git push origin :refs/tags/v0.9 | 刪除遠端標籤 |
git config –global alias.br branch | 配置別名,br就代表branch,更多的自己配 |
tortoisegit--圖形介面for windows
暫時git bash 夠用了,用到再說吧
Https和SSH的區別
在管理Git專案上,很多時候都是直接使用https url克隆到本地,當然也有有些人使用SSH url克隆到本地。這兩種方式的主要區別在於:使用https url克隆對初學者來說會比較方便,複製https url然後到git Bash裡面直接用clone命令克隆到本地就好了,但是每次fetch和push程式碼都需要輸入賬號和密碼,這也是https方式的麻煩之處。而使用SSH url克隆卻需要在克隆之前先配置和新增好SSH key,因此,如果你想要使用SSH url克隆的話,你必須是這個專案的擁有者。否則你是無法新增SSH key的,另外ssh預設是每次fetch和push程式碼都不需要輸入賬號和密碼,如果你想要每次都輸入賬號密碼才能進行fetch和push也可以另外進行設定。 詳細操作請點選Git使用手冊:HTTPS和SSH方式的區別和使用
GIST
Gist 提到比較少,其實很好用
可以用來共享部分程式碼或者錯誤資訊,
也可以用來做to-do list
Gist