mac os x使用Git簡易入門教程,osgit

來源:互聯網
上載者:User

mac os x使用Git簡易入門教程,osgit

  具體如下;

1, 首先要瞭解什麼是Git。

簡而言之,Git是一個分布式的代碼版本管理工具。類似的常用工具還有SVN,CVS。

概念瞭解參見;http://baike.baidu.com/subview/1531489/12032478.htm?fromId=1531489&from=rdtself&fr=wordsearch

2,為什麼要使用Git。

Git相比SVN,CVS,最大的特點也是優點在於提供分布式的代碼管理。這不是說SVN等不具有該功能,但就目前來看,Git更完善,而且也越來越多地被人們所接受。前途和易用是我一向選擇的基準。

在使用中,目前體驗到最大的相比SVN的好處有;
分支代碼只有一份!log在本地!合并代碼更加方便!更加安全!目錄更加簡潔!

簡單做下解釋;

分支代碼只有一份!
使用過svn的童鞋想必都知道,當我們要開發一個新功能或者增加一個新版本或者修改一個複雜bug的時候,通常需要copy整份代碼到本地一個目錄,然後添加到svn伺服器上進行代碼管理。
而Git不同,Git可以建立許多branches,每個branch都是獨立的,當我們需要修改代碼的時候,commit也只是對本地倉庫的修改。如果使用SourceTree,我們會發現在工具列的Git Flow功能,已經很好的為此做了準備。

log在本地!
svn的log都是儲存在伺服器上的,當我們要查閱修改記錄的時候,必須要能夠串連上遠程伺服器,並且具有許可權。而Git不同,Git對於本地倉庫的修改記錄都是在本地上的,方便查閱。

合并代碼更加方便!
因為Git支援本地無限Branches,當我們個體在本地建立多個branches用於不同目的的時候(修改,新增,探索),合并一份代碼顯然要比svn合并一堆工程copy更加簡單。

更加安全!
Git的commit命令不同於SVN,commit只是對本地倉庫代碼的一次更新。當需要提交到master遠程倉庫,或者其他遠程分支倉庫的時候,需要使用push功能。雖然增加了一個過程,卻可以防止隨意修改導致後期合并出現大問題的風險。

目錄更加簡潔!
在Git本地倉庫根目錄,只有一個.git檔案,它包含了所有的管理資訊。而SVN想必大家都知道,每個子目錄下都有噁心的.svn。這個當需要修改檔案衝突等問題時,就需要考慮了。肯定是一個檔案簡單。

3, 如何安裝Git到MAC OS X
這裡介紹兩種方式;
一,使用Git command-line
二,使用GUI工具SourceTree,功能很強大,很方便

在進行安裝前,要說一下,Git和SVN一樣,都需要建立一個伺服器的,他們都可以建立自己的版本管理伺服器。對於個人和小團隊來說,使用託管伺服器可能更合適,
常見的有Github 和 Bitbucket。這裡我介紹下Bitbucket,Github因為沒有個人免費倉庫使用,代碼放上去就是開源的,所以這裡我選擇Bitbucket。另外,現在Bitbucket的個人倉庫相關頁面已經基本漢化了。註冊流程也比較簡單。
詳見連結;https://bitbucket.org/

這裡先介紹下使用Command-line。
1,下載Git installer,地址;http://git-scm.com/downloads
2,下載之後開啟,雙擊.pkg安裝
3, 開啟終端,使用git --version命令查看安裝版本,有就是安裝成功了
/*以下4.5命令如果已經使用Bitbucket建立過了,將會自動包含*/
4,建立一個全球使用者名稱
git config --global user.name "FIRST_NAME LAST_NAME"
5,建立一個全球郵箱
git config --global user.email "MY_NAME@example.com"
6, 如果不想每次串連遠程倉庫都輸入密碼的話,輸入如下命令
git credential-osxkeychain
------>等待
git config --global credential.helper osxkeychain
# Set git to use the osxkeychain credential helper
到此Git就安裝完成了。

二,關於SourceTree這裡先不做介紹。初始安裝和SVN類似。

4, 如何使用Git
這裡也介紹兩種方式
一,使用command
二,使用SourceTree

先介紹第一種;Command line

使用終端的命令列時,首先我們要有一定的linux命令列知識。實際使用中經常用到的比較少,這裡只介紹一些必要的。
參考連結;http://www.renfei.org/blog/mac-os-x-terminal-101.html

linux基礎命令;
sudo -s   擷取絕對使用者權限
cd xxx    進入xxx目錄
ls (-a/-A)   顯示當前路徑下所有檔案(隱藏的)
pwd       顯示當前絕對路徑
mkdir  xxx   建立檔案夾xxx
man xxx     查看xxx命令手冊

然後介紹下Git基礎命令的含義;
clone   複製遠程倉庫
init       初始化倉庫
remote 串連遠程倉庫
pull      從遠程倉庫下拉擷取新資料
push    將本地倉庫新增或修改檔案上傳到遠程倉庫
add     添加檔案或者修改檔案,commit以及push之前使用
log      當前倉庫提交過的日誌資訊
status  當前倉庫版本狀態
commit 提交到當前倉庫中
branch 分支命令,相關增刪查操作
checkout 使用遠程倉庫最後一個版本完全覆蓋當前倉庫內容/選擇分支branch
diff      對比版本內容
merge   合并版本內容
詳細參見連結;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home

使用Git,我們當然要有一個遠程倉庫,這裡假設我們已經建立好了Bitbucket帳號(建立遠程倉庫repository使用)。
建立遠程倉庫的方法這裡也介紹兩種方式。
一,使用Git 命令建立
二,在Bitbucket上建立

第一種,使用Git 命令列

初始化
git init
--------->
從Bitbucket上複製倉庫地址
--------->
添加別名為origin的源到遠程倉庫地址
git  remote  add  origin  https://myAccountName@bitbucket.org/myAccountName/myRepositoryName.git

第二種,Bitbucket上建立遠程倉庫
註冊之後按照提示建立即可,非常簡單。。。不再複述。
詳見參考;https://confluence.atlassian.com/display/BITBUCKET/Bitbucket+Documentation+Home中的Bitbucket 101文檔

---------以上為初始建立--------------華麗的分割線---------------以下為操作版本庫-------------------

有了遠程倉庫Repostiory,我們該添加代碼或者其他檔案什麼的了

這裡還是介紹兩種;
一, 使用command-line
二, 使用SourceTree

第一種, 使用command-line
在本地目錄連結了遠程倉庫後(clone命令),使用如下方法操作檔案。

git add xxx           添加或要修改的xxx檔案
------------------>
git commit -m "adding repo instructions"         提交xxx檔案到本地倉庫版本中 ;-m “XXXX” ;提交log
------------------>
git push -u origin master                提交xxx和log,到遠程倉庫origin(剛才建立的遠程倉庫Repository的別名)的master分支下

第二種, 使用SourceTree
和svn類似,具體流程為;
add----添加檔案到索引----->commit------提交到本地倉庫------>push--------上傳到遠程倉庫--------->

之後就是對倉庫中檔案的增加修改刪除操作了

Ps:記得如果不是單獨另需建立的branch,每次對本地倉庫操作的時候都要使用 git pull命令,更新遠程倉庫到本地中,防止衝突。這點和SVN的update類似

先介紹到這裡,其實操作起來基本和SVN的命令列工具還有gui工具類似。
實際使用中主要區別還是分布式的開發模式不同。

歡迎大家來補充~

----------------------------------------------------------------------分割線-------------------------------以下為對Git的Branch進行說明-------------------------------------------------

Branch就是分支,Git相比SVN,最大的優點是完善的分布式管理。每一個本地的Repository,也就是倉庫,都相當於一個本地版本伺服器,在此基礎上我們可以進行許多Branches,進行不同
類型的開發。Branch的目錄統一性使得它的管理,包括merge非常簡單方便。

一, 先介紹下SourceTree下的Branch,
這裡提供個比較詳細的部落格連結,供大家參考,圖文並茂,已經解釋的比較詳細了,不再複述。
參考地址: http://www.takobear.tw/12/post/2014/02/bear-git-flow-sourcetreegit-flow.html

二, 使用command-line建立branch分支

待續。。。。。。

----------------------------------------------------------------------分割線-------------------------------以下為小技巧-----------------------------------------------

1,   Git Stash命令
說到branches,使用Git開發較複雜的項目我想本地肯定會有多個。假如我們有一個臨時緊急的重要任務,需要切換到其它branch,那麼我們需要commit當前的內容。
但是,假如我修改的內容比較亂,或者其它什麼原因不想提交到倉庫中呢,這時候我們就可以使用Stash命令了。
$ git stash
這個命令的意思是將當前工作區的內容放到一個臨時的地區,這意味著,使用git status,或者add commit命令,是無效的。
但是我們很好的保護了現場。接下來就可以checkout到其它branch工作了。

回來之後,要回複一下現場。這裡要簡單說明下,stash命令的一個工作機制。
當使用了stash命令後,當前工作區域的內容會被push進一個棧隊列裡,是的,就和navigationController一樣。
假如我們要回複現場。有兩種選擇;pop, 或者apply

pop顧名思義,當前暫存內容從棧隊列裡消失了,apply則和objectAtIndex一樣,隊列裡仍然有該暫存內容。

當多個branches被我們stash的時候,會用到如下兩個命令;

git stash list: 顯示Git暫存棧內的所有備份,可以利用這個列表來決定從那個地方恢複。
git stash clear: 清空Git棧。此時使用gitg等圖形化工具會發現,原來stash的哪些節點都消失了。

Ps:記住,多多使用git status 命令,就好比,好記性不如爛筆頭。git 幫我們做好的筆記要多多查看,防止出錯。

2,  讓Git忽略煩人不想追蹤的檔案
一,可以設定整個Git倉庫需要忽略的檔案。
$ git config –global core.excludesfile ~/.gitignore_global
$vim ~/.gitignore_global

然後在.gitignore_global檔案裡面設定我們想要忽略的檔案。比如添加如下
# Mac OS X
*.DS_Store

# Xcode
*.pbxuser
*.mode1v3
*.mode2v3
*.perspectivev3
*.xcuserstate
project.xcworkspace/
xcuserdata/

#Git
.gitingore
.gitingore.swp

之後儲存就可以了。如果輸入git status仍然提示有不期望的被追蹤的檔案。需要清理下
$ git rm --cache xxx    xxx為想要忽略的檔案

好了,再也不會有煩人的檔案了

二,可以單獨為某個目錄設定忽略檔案。
到想要忽略檔案的目錄下,
$ vim .gitignore
添加如上規則的名字
儲存之後,退出,就可以了。

關於忽略檔案的命名規則,請參考連結:
http://bdxnote.blog.163.com/blog/static/844423520124153051409/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.