小菜初學git,下面的都是個人總結,希望各位能不吝指教,多多指出我理解上的偏差,謝謝!
git入門書籍:http://progit.org/book/
版本控制系統,以前瞭解過cvs、svn,最近似乎git大有取代前者之勢。經過初步的瞭解,才知道git和以前的版本控制系統有許多本質上的差別。
版本控制系統的發展過程:單機版本控制系統(offline) ——集成式版本控制系統(online)——分佈式版本控制系統(offline/online)
- 集成式版本控制系統:cvs、svn都是這類。適合多人協作開發,項目倉庫放在一個遠端服務器上,服務器中保存所有的歷史版本,每個人本地工作倉庫只是遠端服務器上該項目的一個版本。這也意味着,大部分操作都得在聯網狀態下才能進行,包括提交、更新、回滾等操作。而且在這種方式下,一旦遠端服務器上的數據受到毀滅性破壞,那麼這種破壞將是不可恢復的。
- 分佈式版本控制系統:git。git中也有本地倉庫和遠端服務器倉庫的概念。但是git中的本地倉庫與遠端服務器上的內容沒有差別,也保存所有的版本歷史。這也就意味着大部分的操作都可是離線狀態,而且即使遠端服務器上的數據損壞了,也可以通過本地數據來恢復。
- 工作目錄(working directory):在工作目錄中修改文件,修改後的文件狀態是modified,新添加的文件是untracked,通過git add命令將文件保存到staging area中;
- staging area:保存下次即將提交到git repository中文件的snapshot。文件狀態是staged,通過git commit命令提交文件到git repository中;
- git repository:本地倉庫。通過git push命令更新遠端服務器倉庫,通過git pull命令更新本地倉庫。
- 在本機上安裝git,http://progit.org/book/
- 使用github充當遠端服務器,託管本地代碼:www.github.com
- 在github上註冊好帳號,創建一個倉庫,就可以將本地倉庫託管上去了
- 剩下的就是從原理上學習git,熟練掌握git的常用命令,不懂的就git --help。
- git config :配置git
- git add:更新working directory中的文件至staging area。git add .更新所有的文件
- git commit:提交staging area中的文件至git repository中。git commit -m 'message'
- git status:查看狀態
- git diff:查看改動情況
- git remote:查看遠端服務器別名,加上-v顯示url信息
- git remote add server_url local-alias:添加遠端服務器
- git clone project_url local_alias:拷貝項目到本機中
- git push server_url/local-alias:更新遠端服務器倉庫
- git pull server_url/local-alias:更新本地服務器倉庫