Git是從2005年創立的開源分散式版本控制系統,由Linus Torvalds創作,為了幫助管理Linux內核開發而開發出來的開源軟體。
當初全世界Linux開發人員所使用的BitKeeper屬於私人軟體,在開放源社區上遭他人反對認為BitKeeper的軟體並不適合在開放源社區的工作,所以Linus Torvalds決定開始著手開發比BitKeeper還要好的版本控制系統,雖然最初目的是為了管理Linux內核的開發,但是後來發現很多自由軟體也使用了Git 。
1.方便查詢過去更改的紀錄內容
2.可以隨意復原之前的紀錄內容
3.多人合作開發時,不會覆蓋到別人的東西
這邊以Windows下安裝為範例
1.請至https://desktop.github.com/ 下載GUI 介面
2.下載後並開啟安裝檔
3. 請按Install
4. 在安裝完成後程式會自動開啟
* 此步可以選擇登入或是點選Skip setup
5.在任何Git工具中都必須設定user.name 和 user.email 沒有這兩個參數 日後無法commit
6.設定完成
ps.GitHub for Windows 裝好之後,其實還額外幫你安裝了一個 Git Shell 工具,這預設是一個 PowerShell 介面的操作環境,好處有很多,之後我們的例子也會盡量使用 Git Shell 來進行操作
1.開啟 Git Shell
2.開啟後出現的視窗
3.請創一個資料夾 並進入此資料夾 指令如下
4.本案例要管理abc資料夾 在命令次元下輸入 git init
當底下出現Master時 表示已成功管理此資料夾
5.我們在abc資料夾下創建一個記事本
7.在命令次元下 輸入 git status ,Git會告訴你當下有一個New Text Document.txt 的檔案還未加入 Staging area
ps.
在Git中有分三個工作區塊
Working Directory: 所有的修改、變動都發生在這個階段。(本地的資料夾)
Staging area: 作為一個中繼的工作區,在將檔案放入資料庫之前做確認及檢查的 工作區,確認無誤後就可以將檔案轉移至資料庫。 (當執行git add . 會使用到)
Repository: 資料庫,儲存著更新的 commit,而線上資料庫會和本機的這個區域進行同步。
8.輸入 git add . 把此檔案新增到Staging area 此時再輸入git status ,Git 會告訴你 New Text Document.txt 可以commit
9.輸入 git commit -m "add file" 就成功完成更新 本地的Repository
ps. git commit -m "your message" your message :寫下更新的重點
Git clone 的目的是要複製遠端的Repository
本教學以GitHub為例
1.先連至 https://github.com/ 並在Search GitHub 搜尋 css
2.我們以 https://github.com/hakimel/css 來舉例 請點選 Clone or download 的按鈕 複製出現的網址
3.請打開 GitShell 輸入以下指令 它會下載在GitHub資料夾下
4.瀏覽剛剛下載的專案 當有出現時表示成功clone別人的Repository
push 的目的是將本地的Repository 上傳至遠端的Repository
以下教學以GitHub為例
1.請連至https://github.com/ ,請點選New Repository
2.將Repository name 命名為abc,並點下Create Repository
3.此視窗是建立好的畫面
4.在 git init 、git add . 、 git commit -m "your message" 操作篇 中 已經完成了一個專案 以此專案為例push到遠端的Repository
5.首先我們要先建立 連接遠端必要指令 如下
Ps. git remote add "name" "position" name:可以由開發者自行命名 position:遠端專案所在的位置
6.檢查是否有建立成功 如圖下
ps.有出現abc 表示建立成功
7.建立好連線時 開始要push 至遠端的Repository 如圖下
ps. git push "name" "branch" name在上一個步驟時以命名為abc 。branch 依照你要上傳的branch而定
8.看看剛剛GitHub所創的abc Repository 是否有出現資料了
pull的目的是取的遠端的資料並與本地的資料進行合併 = 同步
假設有兩個人負責一個專案
A負責 修改 New text Document.txt
並新增abc檔案
並push至遠端的Repository
此時B 本地的Repository
還沒有A更新過的資料
就必須用到pull來更新本地的Repository
1.依照PUSH 操作篇在新增一個abcd的文件,並修改New text Document.txt裡的內容
ps.以上步驟是代替A這個人物
2.B的本地Repository 與遠端的Repository 並不一致
3.開始與遠端Repository 進行同步 如圖下
ps. git pull "position" position:遠端專案所在的位置
4.同步成功後 B本地的Repository會新增 abcd的檔案 及修改過後的New Text Document.txt
參考資料網址:http://gogojimmy.net/2012/01/17/how-to-use-git-1-git-basic/
http://codeplanet.me/archives/2015/06/install-sourcetree/
https://zh.wikipedia.org/wiki/Git
http://baike.baidu.com/subview/1531489/12032478.htm
https://confluence.atlassian.com/bitbucketserver/basic-git-commands-776639767.html