0.什么是Git
維基百科上對git的說明:
? git是用于Linux內(nèi)核開發(fā)的版本控制工具怜械。與CVS网沾、Subversion一類的集中式版本控制工具不同朴皆,它采用了分布式版本庫的作法介蛉,不需要服務(wù)器端軟件本缠,就可以運作版本控制,使得源代碼的發(fā)布和交流極其方便缭黔。git的速度很快食茎,這對于諸如Linux內(nèi)核這樣的大項目來說自然很重要。git最為出色的是它的合并追蹤(merge tracing)能力馏谨。
git是一種分布式的版本管理工具别渔,每個人的設(shè)備上都是一份完整的代碼庫,并且包含了所有的代碼提交歷史惧互。所以哎媚,即使是在沒有網(wǎng)絡(luò)的情況下,也可以將代碼提交到本地git版本管理庫中喊儡,等到網(wǎng)絡(luò)恢復(fù)之后再上傳到服務(wù)器拨与。
1.工作區(qū)和暫存區(qū)
1.1工作區(qū)
工作區(qū)是指當(dāng)前工程的目錄。
如果我新建的是一個Android的工程那么它的工作區(qū)則為:
1.2 暫存區(qū)
工作區(qū)有一個隱藏目錄.git艾猜,這個不算工作區(qū)买喧,而是Git的版本庫。
Git的版本庫里存了很多東西匆赃,其中最重要的就是稱為stage(或者叫index)的暫存區(qū)淤毛,還有Git為我們自動創(chuàng)建的第一個分支master,以及指向master的一個指針叫HEAD算柳。
把文件往Git版本庫里添加的時候低淡,是分兩步執(zhí)行的:
第一步是用git add把文件添加進(jìn)去,實際上就是把文件修改添加到暫存區(qū)瞬项;
第二步是用git commit提交更改蔗蹋,實際上就是把暫存區(qū)的所有內(nèi)容提交到當(dāng)前分支。
2.基礎(chǔ)的Git命令使用
git命令流程圖:圖片來自知乎@王奧(OX)
2.1配置本地倉庫的用戶信息
git config --global user.name "[name]"
git config --global user.email "[email address]"
2.2 常用的命令
git init :初始化一個本地倉庫
git add –all :添加所有文件到暫存區(qū)(stage囱淋,index)
git commit -m :“描述信息” 提交更改到本地master分支
git status :查看git當(dāng)前狀態(tài)
git diff :查看改動后和改動前的不同之處
git log :獲得文件更改的歷史記錄
git checkout – readme.txt:把readme.txt文件在工作區(qū)的修改全部撤銷
git remote -v 查看遠(yuǎn)程服務(wù)器地址和倉庫名稱
git remote show origin 查看遠(yuǎn)程服務(wù)器倉庫狀態(tài)
git remote add origin git@xxx.git 添加遠(yuǎn)程倉庫地址
git remote set-url origin git@xxx.git 設(shè)置遠(yuǎn)程倉庫地址(用于修改遠(yuǎn)程倉庫地址)
git remote rm <repository> 刪除遠(yuǎn)程倉庫
git branch # 顯示本地分支
git branch -a # 顯示所有分支
git merge origin/master # 合并遠(yuǎn)程master分支至當(dāng)前分支
git fetch # 獲取所有遠(yuǎn)程分支(不更新本地分支猪杭,另需merge)
git pull origin master # 獲取遠(yuǎn)程分支master并merge到當(dāng)前分支
命令速查表 via HalShaw:
2.3為現(xiàn)有的項目添加git控制并上傳到gitlab
cd existing_folder
git init
git remote add origin xxx.git
git add .
git commit -m "Initial commit"
git push -u origin master
3.可視化界面下Git的使用
除了使用git bash的命令行來進(jìn)行項目版本控制,可視化的git管理工具也是我們?nèi)粘W罱?jīng)常使用的绎橘。
3.1 Android Studio 自帶的git可視化工具
使用前記得安裝git,并且在Android Studio中配置好git。
3.1.1 基本命令的使用
在project視圖下選中整個項目
add
git>>add 即可將整個工程添加到git的暫存區(qū)称鳞。
commit
要控制好commit粒度以及commit信息的書寫
push
push之前要確保本機的ssh已經(jīng)添加到管理遠(yuǎn)程倉庫的網(wǎng)站中涮较。
這里可以有兩種方式設(shè)置遠(yuǎn)程倉庫地址
第一種,在可視化界面中點擊origin:后的藍(lán)色文字冈止,添加遠(yuǎn)程倉庫
第二種狂票,利用git bash,
git remote -v 查看遠(yuǎn)程服務(wù)器地址和倉庫名稱
git remote show origin 查看遠(yuǎn)程服務(wù)器倉庫狀態(tài)
git remote add origin git@xxx.git 添加遠(yuǎn)程倉庫地址
git remote set-url origin git@xxx.git 設(shè)置遠(yuǎn)程倉庫地址(用于修改遠(yuǎn)程倉庫地址)
git remote rm <repository> 刪除遠(yuǎn)程倉庫
這5個命令可以讓你完全掌握遠(yuǎn)程倉庫的狀態(tài)信息熙暴,并且在出現(xiàn)異常時(如遠(yuǎn)程倉庫地址更改闺属,服務(wù)器綁定域名更換等等),可以很方便地移除或者修改遠(yuǎn)程倉庫的地址周霉。
3.1.2快速調(diào)出版本控制的控制面板
或者在選中項目之后掂器,使用快捷鍵Alt+`(windows下),即可調(diào)出版本控制的控制面板,快速地進(jìn)行相應(yīng)操作,非常方便俱箱,推薦使用国瓮。
3.1.3 Version control
清楚地展示Git flow
這里可以很清楚地展示git倉庫的各個版本之間的關(guān)系以及版本信息。
3.2 SourceTree 狞谱,Git GUI
這些也是非常好用的圖形化工具乃摹,這里就不多介紹了。
Tips:
推薦一些比較好的關(guān)于git的網(wǎng)站:
在線的git使用學(xué)習(xí)網(wǎng)站
https://learngitbranching.js.org/
廖雪峰的git教程
https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000