Git與GitHub入門簡明教程

貓董發表於2018-10-19

github賬號註冊

開啟網址github,註冊賬號,沒什麼好說的。

repository

簡介

repository 譯為倉庫或者版本庫,其實就是一個目錄,這個目錄中的所有檔案都被git管理,不管你做什麼操作都會被記錄,包括:增加、刪除、修改檔案等,都會被記錄下來,以便後來跟蹤與修改相關記錄,甚至被還原。

新建repository

很簡單github主頁點加號

Git與GitHub入門簡明教程

Git與GitHub入門簡明教程

常見操作

主要操作有 fork,fetch,clone,add,commit,push,pull,pull request,checkout 其主要含義如下圖所示:

Git與GitHub入門簡明教程

Git與GitHub入門簡明教程

本地配置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與GitHub入門簡明教程

語句 含義
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

相關文章