標籤:
一、git簡介什麼是git?git是一款開源的分布式版本控制工具在世界上所有的分布式版本控制工具中,git是最快、最簡單、最流行的 git的起源作者是Linux之父:Linus Benedict Torvalds當初開發git僅僅是為了輔助Linux核心的開發(管理原始碼) git的現狀在國外已經非常普及,國內並未普及(在慢慢普及)
越來越多的開源項目已經轉移到git
CVS最早的開源、免費的集中式版本控制工具自身設計有問題,會造成提交檔案不完整,版本庫莫名其妙損壞的情況 SVN修正了CVS的一些穩定性問題,是目前用得最多的集中式版本庫控制工具 ClearCase收費的集中式版本控制工具,安裝比Windows還大,運行比蝸牛還慢能用ClearCase的一般是世界500強,他們有個共同的特點是財大氣粗或者人傻錢多 VSS微軟的集中式版本控制工具,整合在Visual Studio中 二、分布式版本控制和集中式版本控制集中式版本控制分布式版本控制 三、git和SVN1、git和SVN的簡單對比速度在很多情況下,git的速度遠遠比SVN快 結構SVN是集中式管理,git是分布式管理 其他SVN使用分支比較笨拙,git可以輕鬆擁有無限個分支SVN必須連網才能正常工作,git支援本地版本控制工作舊版本的SVN會在每一個目錄置放一個.svn,git只會在根目錄擁有一個.git 2、SVN的工作流程 3、git的工作流程分布式和集中式的最大區別在於:在分布式下開發人員可以本地提交每個開發人員機器上都有一個伺服器的資料庫 四、如何使用git1、使用git跟SVN一樣,你可以通過命令列敲指令或者圖形介面用戶端使用git
在Mac上,比較好用的git圖形介面用戶端有SourceTree:http://www.sourcetreeapp.com/download/ GitHub:https://mac.github.com不過它是專門為GitHub網站而設計的 Xcode 2、git常用指令git help :git指令協助手冊查看其他指令的做法:git help 其他指令
git config :git的配置資訊相關(修改的是.git/config檔案)配置使用者名稱:git config “user.name” 使用者名稱(用於跟蹤修改記錄)配置郵箱:git config “user.email” 郵箱(用於多人開發間的溝通)查看配置資訊:git config –l編輯配置資訊:git config –e(用vim編輯,:wq是退出vim編輯器)設定指令的別名:git config alias.別名 原指令名稱設定帶參數指令的別名:git config alias.別名 “原指令名稱 參數”將此設定應用到整個系統中:git config ––gloabal git status :查檔案的狀態查看某個檔案的狀態:git status 檔案名稱查看當前路徑所有檔案的狀態:git status
git log :查看檔案的修改日誌查看某個檔案的修改日誌:git log 檔案名稱查看當前路徑所有檔案的修改日誌:git log用一行的方式查看簡單的日誌資訊:git log ––pretty=oneline查看最近的N次修改:git log –N(N是一個整數) git diff :查看檔案最新改動的地方查看某個檔案的最新改動的地方:git diff 檔案名稱查看當前路徑所有檔案最新改動的地方:git diff git init :初始化一個空的本地倉庫,產生一個.git目錄,用於維護版本資訊在當前路徑初始化倉庫:git init在其他路徑初始化倉庫:git init 倉庫路徑 git add :將工作區的檔案儲存到暫緩區儲存某個檔案到暫緩區:git add 檔案名稱儲存當前路徑的所有檔案到暫緩區:git add .(注意,最後是一個點 . ) git commit :將暫緩區的檔案提交到當前分支提交某個檔案到分支:git commit -m ”注釋” 檔案名稱儲存當前路徑的所有檔案到分支:git commit -m ”注釋” git reset :版本回退(建議加上––hard參數,git支援無限次後悔)回退到上一個版本:git reset ––hard HEAD^回退到上上一個版本:git reset ––hard HEAD^^回退到上N個版本:git reset ––hard HEAD~N(N是一個整數)回退到任意一個版本:git reset ––hard 版本號碼(版本號碼用7位即可) git reflog :查看指令使用記錄(能夠查看所有的版本號碼) git rm:刪除檔案(刪完之後要進行commit操作,才能同步到版本庫) git clone:下載遠程倉庫到本地下載遠程倉庫到當前路徑:git clone 倉庫的URL下載遠程倉庫到特定路徑:git clone 倉庫的URL 存放倉庫的路徑
git pull:下載遠程倉庫的最新資訊到本地倉庫 git push:將本地的倉庫資訊推送到遠程倉庫 五、工作原理如果想瞭解git的工作原理,有幾個核心概念必須知道工作區(Working Directory):倉庫檔案夾裡除.git目錄以外的內容 版本庫(Repository):.git目錄,用於儲存記錄版本資訊暫緩區(stage)分支(master):git自動建立的第一個分支HEAD指標:用於指向當前分支 git add和git commit的原理git add :把檔案修改或者新添加的檔案添加到暫存區git commit :把暫存區的所有內容提交到當前分支 六、遠程倉庫如果是多人團隊開發,最好還是搭建一個遠程倉庫 搭建遠程倉庫的途徑自己搭建一個git伺服器:費時費力在GitHub上託管項目:公開項目免費、私人項目收費,很多第三方開源項目在oschina上託管項目:完全免費,在國內訪問速度快(推薦使用) 七、搭建GitHub遠程倉庫1、配置SSH Key註冊一個GitHub帳號:https://github.com開啟“Account Settings點擊“SSH keys”配置Mac的SSH Key的公開金鑰(用於限制提交) 查看ssh版本 $ ssh –v開啟終端,$ ssh-keygen 一路enter下。在Mac上產生SSH Key(在終端輸入下面指令)cd ~/.sshssh-keygen -t rsa -C "你的郵箱地址”然後一直敲斷行符號 然後就會在~/.ssh目錄下產生SSK Key的秘鑰對id_rsa :私密金鑰,不可泄露id_rsa.pub :公開金鑰,可以公開(將這個檔案的內容粘貼到GitHub上) 利用cat指令可以查看檔案的內容cat id_rsa.pub 2、添加倉庫 拷貝倉庫地址,用於下載到本地 如果想刪除倉庫,也很簡單 八、搭建oschina遠程倉庫 1、建立倉庫註冊一個oschina帳號:https://git.oschina.net 倉庫地址 添加項目群組成員
隨後需要在終端設定git的郵箱和使用者名稱,不然沒有訪問倉庫的許可權
2、刪除倉庫
原始程式碼控制——git(分布式版本控制和集中式版本控制對比,git和SVN對比,git常用指令,搭建GitHub遠程倉庫,搭建oschina遠程倉庫 )