編輯:關於Android編程
標簽(空格分隔): Android進階
在之前的Android基礎入門系列我們就講解過Git的簡單使用了,進階系列我們
系統地對Git進行講解,基本命令的使用;工作區,暫存區,歷史倉庫,遠程倉庫的概念,
團隊協作中的分支管理,Android Studio中使用Git等;Git是一個快速的分布式的版本
控制系統,和其他的版本控制系統的差別在於Git直接記錄快照,而不是差異比較!
差異比較的版本控制系統只關心文件內容的具體差異,然後每次記錄哪些文件做了更新,
以及更新了哪些行的內容!當我們想切換到以前某個版本的時候,我們需要merge,而
Git在每次commit時,都會完整的存儲當前版本所有修改的文件,而不是只存儲diff,
所以想切換都某個歷史版本只需簡單的reset即可!
在開始使用Git之前我們先要知道Git的四個部分:
下面就來分別介紹這四個部分:
工作區就不用說了,我們當前的工作空間;而另外三個部分,我們舉個形象點的例子來幫助理解吧: Windows系統: Linux系統: Mac系統: 安裝完Git後,我們就可以打開Git命令行: Windows在任意位置右鍵,點擊Git Bash打開Git命令行 這裡說下為什麼要使用命令行: 安裝完Git要做的第一件事就是配置你的身份信息,團隊開發,萬一哪裡錯問題了,誰背鍋?是把! 配置完後,把”“部分信息去掉,輸多一次上面的指令,可以看到是否配置成功 也可以鍵入下述指令來查看所有的git設置: 和其他的命令行一樣,git同樣帶有help指令,當遇到沒見過或者忘記了的命令的時候,可以鍵入: 把init改成你要查詢的那個指令即可!比如git help add win下會打開一個Git的Manual(手冊)的頁面,可以在之類查看指令的一些用法 你也可以到Git官方手冊查找對應指令! 你可以直接鍵入下述指令創建一個新的帶Git倉庫的項目: 把GitForTest改成你想創建的工程名即可!接著我們可以來到新創建的工程的目錄下,這裡需要 當然假如你已經有項目了,想在之前項目的基礎上添加Git倉庫,那麼通過命令行或者git bash來到當前工程的文件夾目錄下,鍵入下述指令即可為你的項目添加本地Git倉庫: 我們可以把新建或者修改過後的文件,我們可以通過git add指令添加到暫存區 要添加的文件很多,覺得添加起來很麻煩,你可以一次性添加多個: 1)將所有tracked文件中被修改或已刪除的文件信息添加到Git暫存區,不會處理untracked的文件! 2)將所有tracked文件中被修改或已刪除的文件信息添加到Git倉庫,會把理untracked的文件信息 3)把當前工作區的所有文件全加入到Git暫存區 除了上面兩種外,git其實還提供了交互界模式,我們可以鍵入: 上圖的流程是這樣的: 1.我現在GitForTest的文件夾裡創建了兩個文件 當然還有其他幾個指令,限於篇幅,有興趣的可以自己研究研究! 我們可以通過git commit -m “xxx”指令將暫存區的內容提交到倉庫中 後面的-m是對本次提交的說明,”xxx”是說明內容,不該偷懶省去,假如你這裡不 另外,我們的項目可能存在一些幾百年不變的或者自動生成的文件,比如lib,gen,bin文件夾等,我們沒必要 我們可以用git status指令來查看工作區與暫存區的當前情況,比如工作區有什麼文件和暫存區的文件 比如我這裡修改了下README.md文件~ add文件後: commit提交暫存區內容 恩,很簡單,另外,你還可以用下述指令,讓結果以簡短的形式輸出~ 上面我們可以通過git status獲取當前工作區與緩存區的狀態,僅僅是狀態, 這樣就可以看到當前的工作區與暫存區中對比,做了哪些修改! 還記得上面的網購的例子嗎,我們可以在我的訂單中找到自己的訂單記錄, 當然,你也可以調用下述指令獲得更精簡的結果 如果上面還滿足不了你的話,可以參考:Viewing the Commit History 我們可以直接右鍵刪除一個文件,又或者進入命令行,鍵入rm xxx.xxx將文件刪除,但是刪除的僅僅是 git告訴你工作區的文件被刪除了,然後你有兩種選擇: 2)誤刪了,將暫存區的文件恢復到工作區,那麼可以鍵入: duang!被刪除的文件又回來了~ 假如你已經把文件用git add到了暫存區,那麼此時你直接用checkout文件是沒有作用的! 此時再調用: 文件即可恢復原樣! 假如,我們的文件修改已經commit了,而你無端端的又後悔了,想恢復成上一次commit時的文件, 恩,我們鍵入git log後可以看到版本已經回退到上一個版本了! 嘿嘿,無壓力,你突然又後悔了,想回到新的那個版本,嗯…好吧,同樣是上面的指令: 你可能會支支吾吾的過來對我說:”恩,那個我剛剛把命令行關了,那個最新的版本號找不著了, 拿到版本號,git reset即可~ 輸入Git命令的時候按兩次Tab就可以了! 如果想偷懶,想少敲幾個字母,可以為命令設置別名,然後鍵入別名就調用對應指令,比如將status設置成st: 本節給大家詳解了Git的本地使用,大部分時間我們都是在本地上進行Git的一些操作,所以熟 參考文獻:
大家都應該網購過吧,比如逛某貓超市的時候,看到心儀的商品,我們可以把商品加入到
購物車(暫存區),我們可能會頻繁地添加商品(add<喎?/kf/ware/vc/" target="_blank" class="keylink">vc3Ryb25nPinT1rvy1d/SxrP9yczGtyg8c3Ryb25nPmNoZWNrb3V0PC9zdHJvbmc+KaOsPGJyIC8+DQrV4rj2uf2zzM7Sw8e/ydLUy+ax4+DLo6y3tNX9u7myu9PDuPjHrqO7tbHO0sPHzPS1w8bfxt+wy7DLo6y909fFztLDx77N0qrM4b27ztLDx7XEtqm1pcHLo6w8YnIgLz4NCrXju/fM4b27tqm1pSg8c3Ryb25nPmNvbW1pdDwvc3Ryb25nPimjrLvhyfqzydK7uPbJzMa3tqm1pcHQse0oPHN0cm9uZz6/7NXVPC9zdHJvbmc+KaOsztLDx7u5v8nS1NTazOG9u7XEyrG68rzTteM8YnIgLz4NCrG416LQxc+io6yxyMjn0qrKssO00dXJq9auwOC1xCg8c3Ryb25nPmNvbW1pdCAtbSAmbGRxdW870dXJqyZyZHF1bzs8L3N0cm9uZz4po6y0y8qxtqm1pbu5w7vT0Li2v+4oPHN0cm9uZz5wdXNoPC9zdHJvbmc+KaOsztLDxzxiciAvPg0Kv8nS1NTa19S8utXLu6e1xDxzdHJvbmc+zrS0psDttqm1pcHQse0osb612LLWv+I8L3N0cm9uZz4p1tDV0rW9ztLDx7XE1eK49raptaUoPHN0cm9uZz6/7NXVPC9zdHJvbmc+KaOs0rK/ydLUv7S1vdfUvLo8YnIgLz4NCtLUx7C1xNK70Km2qbWlvMfCvKO7usOwyaOsvdPXxc7Sw8fRodTx1eK49ru5w7u4tr/utcS2qbWlo6zIu7rzvfjQ0Li2v+4oPHN0cm9uZz5wdXNoPC9zdHJvbmc+KaOsuLa/7jxiciAvPg0Kzeqzybrzo6w8c3Ryb25nPsnMvNIo1LazzLLWv+IpPC9zdHJvbmc+vs274crVtb3E47XE1eK49raptaWjrMi7uvO3orv1JmhlbGxpcDs8L3A+DQo8YmxvY2txdW90ZT4NCgk8cD7P4NDF09DBy9XiuPbNvNLUvLDN+Lm6tcTQzs/zu6/A/dfTo6zE49OmuMPE3MDtveJHaXS1xMvEuPayv7fWtcS4xcTuwcujrLb4R2l0tcSy2df3PGJyIC8+DQoJtPOyv7fWtrzKx9Tasb612Na00NC1xKOsz8LD5srHR2l0tcTPwtTYsLLXsDwvcD4NCjwvYmxvY2txdW90ZT4NCjxociAvPg0KPGgyIGlkPQ=="3git的下載安裝">3.Git的下載安裝
到Git For Windows或者git-for-windows.github.io上下載,然後是傻瓜式的下一步
到Download for Linux and Unix下載,假如你是和我一樣的Ubuntu的話直接在Terminal鍵入:
sudo apt-get install git
到Installing on Mac下載
Ubuntu下直接打開Terminal就可以,Terminal的快捷鍵是:ctrl + alt + t
逼格高,命令熟悉後可以沒事無情秀一波;當然,其實更多的減少跨平台後使用Git的成本,
比如你熟悉了Win下某個Git的GUI工具,但是加入某一天你要遷移到Linux上,全是命令
行,你怎麼玩…或者需要換另一個新的GUI工具,你又需要花時間去熟悉這個工具的使用。
看自己吧,也沒一定要命令行,你也可以用圖形化工具,後面也會講下在Android Studio上使用Git!
PS:本來是打算在Ubuntu下完成命令演示的,後來發現截圖後還要自己處理截圖,因為
Ubuntu只能全屏截圖或者窗口截圖,所以,直接在win上進行演示了~
4.設置您的身份信息
鍵入下述指令:
git config --global user.name "coder-pig"
git config --global user.email "[email protected]"
git config --list
4.獲取幫助
git help init
而Ubuntu下則會直接在命令行輸出:
5.創建本地的代碼倉庫
git init GitForTest
修改下讓隱藏文件可見,就可以看到.git的文件夾裡,裡面東東就是我們git倉庫的東東了,切記
別隨意去改或者刪除裡面的東西!(你也可以鍵入:ls -ah來查看隱藏文件)
git init
6.將文件放入暫存區
你可以用下面的指令,一個個文件的添加:
git add README.md
這裡說下一個名詞:tracked代表已經加入Git倉庫,untracked代表還未加入Git倉庫!
git add -u
也加入Git暫存區
git add -A
git add .
git add -i
2.鍵入git add -i,進入後,鍵入4,選擇添加untracked的文件
3.他給我們列出了untracked的文件,然後我們根據序號來添加文件
4.輸入?會彈出相關提示,然後直接回車,結束選擇!
5.然後再次輸入git add -i,輸入4,可以看到已不存在untacked的文件了!
7.將暫存區的內容提交到本地倉庫(History)
git commit -m "修改了xxx"
輸入,-m “xxx” 的話,也會讓你進入Vim來編寫聲明信息的~所以建議還是在這裡進行提交內容的說明吧!
每次都把這些都commit,我們可以在.git同級的目錄下創建一個名為.gitignore的文件,然後編輯內容,把
不需要提交的文件寫上,那麼commit的時候就會自動忽略這些文件的了~:
8.查看當前工作區與暫存區的狀態
對比,發生了改變,要不要add下?又比如暫存區裡有東西add了,但是還沒提交等等,直接鍵入下述指令即可:
git status
只是改了沒add:
git status -s
9.查看工作區與暫存區的差異
假如我們需要查看發生改變的內容,那麼你需要鍵入下述指令:
git diff
PS:上面是我們在README.md文件裡添加了一條語句,然後再輸入git diff!
10.查看提交更改的記錄
同樣,在git中,我們也可以查看所有commit的記錄!可以鍵入下述指令:
git log
git log --oneline
對log進行定制,比如:
11.刪除文件 + 文件恢復(未add到暫存區)
當前工作區裡的文件,暫存區裡還是存在著該文件的,所以此時你鍵入git status的話,會發現:
1)把暫存區裡的文件也刪了,那麼鍵入:
git rm "xxx.xxx"
git commit -m "xxx"
git checkout -- xxx.xxx
當然,上面的checkout不止適用於誤刪文件,當你把一個文件改得面目全非的時候,
你突然後悔了,但是你已經ctrl+s保存了很多次代碼了,你可以用用上述指令回到
這個文件的最初樣子!(前提是你還沒add!)
12.文件恢復(已add到暫存區,未commit)
我們需要通過git reset指令來廢除此次修改記錄(版本回退),讓當前文件回到上一次提交時的狀態!
鍵入:
git reset HEAD xxx.xxx
git checkout -- xxx.xxx
13.文件恢復(已commit)——版本回退
又或者上上次的,這時候你可能開始方了,不過Git為我們提供了時光機(版本回退),我們可以
通過下述指令回退到上一個版本:
git reset HEAD^
如果是上上個版本,你只需加多^,再上一個版本繼續加^,如此類推!
當然,除了上面的形式,你還可以根據版本號來回退,比如這裡我退到第一個版本:
git reset --hard 8c3f91f
不過版本號改成最新那次commit的版本號就可以了!
git reset --hard cf2d155
git log也找不到那個最新的版本號,那我是不是不能回未來了?”幸運的是,Git時光機會記錄
你輸入的每一條指令,你只需鍵入下述指令:
git reflog
14.Git命令自動補全
15.Git命令別名
16.小結
悉這些命令很重要!當然這是需要一點點積累的,敲多了,敲起來就行雲流水了!下節開始,我們
來學習遠程倉庫,分支管理,團隊開發中的協作,等等~謝謝!
Pro Git(官方) Pro Git(oschina)
Android基礎入門教程——8.3.16 Canvas API詳解(Part 1)標簽(空格分隔): Android基礎入門教程本節引言: 前面
一、VC與模板概念的理解MVC本來是存在於Desktop程序中的,M是指數據模型,V是指用戶界面,C則是控制器。使用MVC的目的是將M和V的實現代碼分離,從而使同一個程序
本文我們將講解允許模擬位置在Android M下的坑。做地圖類應用的同學應該都知道為了避免軟件模擬位置影響正常流程的進行我們一般都會判斷用戶手機是否打開了模擬位置設置,若
純屬好奇心驅動寫的一個學習性Demo,效果如下:兩個帶圓弧的線就是由三點確認的一個貝塞爾曲線:在Android已經有提供畫貝塞爾曲線的接口,三個點傳進去,效果就出來了。貝