沒辦法 很多東西我都要自己來用
我一直覺得這個Git 是一個蠻夯的東西
所以我決定要來玩玩
我目前用的電腦是win 7
所以我就去官方下載了
我是使用msysgit 的版本
(原意就是在windows理會跳出命令列 使用git xxxx等等的來控制版本 原因之一 回家後我還是在使用linux和macos 所以裝這個版本幾乎通吃)
也可以使用TortoiseGit (傳統的ui控制介面來達到版本控制的方式)
======================================================================
首先我們要知道GIT是甚麼?
Git就是一套版本控制軟體,類似一個SVN的中心式版本控制,git是分散式版本控制,幾乎很多事情都在本機端處理.舉例來說,我在無網路的狀態下做commit,未來有需要做merge的時候,在跟master做merge的動作就好了.
每個開發者都有自己的repository(Repo:倉庫)
只要安裝完上述的工作後,你點一個空的資料夾,就會出現兩個選項,bash(命令列)和gui,bash就是命令列操作模式,gui是圖形操作介面.
簡單的使用介紹:(win7)
一般我們會開一個資料夾.點選右鍵,選擇Git Bash Here,就會跳出命令視窗,你所在的資料夾位置就是在你點擊右鍵,開啟命令視窗的資料夾裡面.一般要使git變數,就要打git init,會在working directory下建立.git目錄,裡面放的是git repository的檔案,有了這些檔案,你才可以在這個working directory裡做git的操作。
@@@以下是比較常用的git方式
$git add . (add *)
當你新增了一項檔案,想要commit上去,新手常犯的錯誤,每次都會跳出Untrack files,原因是因為你沒有去做add這個指令列.意思讓檔案們進入所謂的staged狀態,才能接著把它們commit進Repo中.
$git add 主檔名.副檔名
個別的檔案加入staged.
$git reset 主檔名.副檔名
有些檔案你不想要再讓它受到版本控制了,也就是要把它unstage.
$git diff
檢查版本裡檔案內容的差異.(文字檔就有很明確的比對)
$git commit, git commit -a (automatically in one step) :
跟svn意思相同建議還是要註解,第一行標題,第二行內容
$git status
知道目前Repo中的檔案們到底是什麼狀況,到底誰要add,誰要commit.
$git log
檢視一下這個Repo之前commit的歷史記錄.
$git checkout xxxx (xxxx版號前四碼) 或著switch到分支版本xxxx
此checkout並不是把專案抓下來的指令,一般常使用svn的人會誤解其意.之後pull clone fetch這些指令才是把專案抓下來的方法.
$git clone url [mast]:
會把遠端的repo整個專案抓下來,放在目前路徑下的新目錄中.(所以不需要先把新目錄建立成Repo,就可以整包抓下來,隨包附上.git目錄).
$git pull url [mast]:
會把遠端的repo整個專案抓下來,跟你目前所在的Repo及所用的Branch作合併(Merge),此指令等同Fetch+Merge.
$git fetch url [mast]:
會把遠端的repo整個專案抓下來,但不跟你目前所用的branch合併,而是放在本地中的另一個Brance(remoteBranch).
$git remote add origin url
新增 url 的識別子,以後就可以直接在url處輸入origin(你所設定的編號).
$git init --bare
這個目錄不會有.git目錄,而是把原先.git目錄中的東西都放進來,而且你日後在這個目錄中不會看到你的程式檔案.比較常用於git server,到時你只要指定這個專案裡面的位置即可pull出來專案.
目前是把git server架在dropbox上,做一個自行備分的系統,也比較有隱密性的效果.
一般還有就是把資料備份在github上,免費版是會公開給大家看其內容的,所以選擇上因人而異囉.教學
要不然就是自己架git server來用.
沒有留言:
張貼留言