日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android开发学习之路-Git的极简教程?

發(fā)布時間:2023/12/18 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android开发学习之路-Git的极简教程? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

Git是一個代碼版本管理工具,也就是允許我們的一個項目擁有多個版本,這樣我們可以隨心所欲的修改我們的代碼,如果出現(xiàn)問題,可以回退到某一個提交點。如果你還在用一堆堆注釋來更新你的代碼,那么可以嘗試一下Git了,畢竟,它不難。

常用的Git操作其實不多,明白這個過程就行了。

※ 關(guān)于Git的安裝畢竟簡單,所以這里就不說了。沒錢買mac,所以......

簡單的流程:初始化->修改文件->添加至?xí)捍鎱^(qū)->提交修改->回退

安裝完畢后,需要先設(shè)置用戶名和郵箱,在桌面中右鍵選擇Git Bash Here,會打開一個小黑窗如圖:

輸入如下命令進(jìn)行設(shè)置即可:

$ git config --global user.name "XXX" $ git config --global user.email "xxx@yyy.com"

① 初始化:git init

先進(jìn)入工程的目錄,這里的Demo是在D:\GitDemoProject目錄下,項目暫時為空,也可以用Studio直接建一個HelloWorld。

在項目根目錄右鍵,選擇Git Bash Here打開命令窗口。

我們的所有命令都是在這個窗口輸入。

接著輸入:git init 然后回車,會有如下提示:

$ git init Initialized empty Git repository in D:/GitDemoProject/.git/

這樣我們的初始化就完成了,項目下會多出一個.git文件夾。

② 創(chuàng)建一個文件

如果熟悉Linux,可以直接用這個Bash來touch一個文件,我們這里直接右鍵創(chuàng)建一個test.txt文件并輸入:Hello Git

這里介紹一個命令:git status,在Bash輸入會得到如下提示:

$ git status On branch masterInitial commitUntracked files:(use "git add <file>..." to include in what will be committed)test.txtnothing added to commit but untracked files present (use "git add" to track)

最后一行提示我們,沒有文件添加至跟蹤狀態(tài),但是發(fā)現(xiàn)了新建的未跟蹤文件。

③ 添加至?xí)捍鎱^(qū)

上面新建的文件就是在暫存區(qū)之外的,這些文件不會被Git控制,也就是目前我們的Git實際上還沒有保存任何關(guān)于這個文件的數(shù)據(jù)。我們需要讓Git知道,這個文件是需要被標(biāo)記的,如果它有任何修改,告訴我。

添加至?xí)捍鎱^(qū)的命令:git add 文件名

$ git add test.txt

這個時候再查看一下狀態(tài):

$ git status On branch masterInitial commitChanges to be committed:(use "git rm --cached <file>..." to unstage)new file: test.txt

我們的文件狀態(tài)不再是Untracked了。

④ 提交修改

命令:git commit -m "xxx"

xxx指的是這次提交的消息,用簡短明了的一句話描述這詞提交的內(nèi)容可以幫助我們快速的進(jìn)行版本切換。

$ git commit -m "first commit" [master (root-commit) 5b59dc7] first commit1 file changed, 1 insertion(+)create mode 100644 test.txt

這個時候,我們就完成了一次提交了。目前為之,整個項目的當(dāng)前版本已經(jīng)被Git保存起來了,在有需要的時候可以進(jìn)行回退。

現(xiàn)在再看看狀態(tài):

$ git status On branch master nothing to commit, working directory clean

提示我們沒有東西可以提交,這個時候只要被跟蹤的文件發(fā)生改變,這個狀態(tài)才會發(fā)生改變。

我們來試一下!

我們打開test.txt文件并修改一下它的內(nèi)容為:Hello Android

接著重新查看狀態(tài):

$ git status On branch master Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: test.txtno changes added to commit (use "git add" and/or "git commit -a")

現(xiàn)在我們被告知,有文件發(fā)生了改變(modified),需要重新添加至?xí)捍鎱^(qū)才能提交。

但是先不要著急,我們再新建一個文件名為readme.txt,不需要添加任何內(nèi)容。

這個時候再執(zhí)行一次git status查看狀態(tài):

$ git status On branch master Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git checkout -- <file>..." to discard changes in working directory)modified: test.txtUntracked files:(use "git add <file>..." to include in what will be committed)readme.txtno changes added to commit (use "git add" and/or "git commit -a")

可以看到,新建的文件狀態(tài)為Untracked,這個時候,我們需要先把這兩個文件添加至?xí)捍鎱^(qū),才可以進(jìn)行提交,直接將這兩個文件添加至?xí)捍鎱^(qū)的命令是git add .

$ git add .

這個命令是把目錄下所有的文件都添加至?xí)捍鎱^(qū)。

接著查看狀態(tài):

$ git status On branch master Changes to be committed:(use "git reset HEAD <file>..." to unstage)new file: readme.txtmodified: test.txt

這個時候就可以進(jìn)行第二次的提交了,我們直接輸入:git commit命令,注意不輸入-m "xxx",窗口會跳轉(zhuǎn)到如下所示的地方:

這里就需要一點vim的知識了,這個文件其實就是用來表示文件提交的內(nèi)容的,所有以#開頭的行都會被忽略,所以我們可以另開一行來編寫我們的提交信息。這里不懂的話可以直接用-m來代替。

修改完并保存好會回到原來的地方:

$ git commit [master ea017b6] create readme.txt and modified the test.txt2 files changed, 1 insertion(+), 1 deletion(-)create mode 100644 readme.txt

⑤ 回退

假設(shè)我們現(xiàn)在發(fā)現(xiàn),第二次的提交是有問題的,我們需要回到第一次提交的地方,要怎么做呢?

這里我們可以使用git reset命令,這個命令需要我們填入一個表示回退點的值,這樣才能確認(rèn)回退到的地點。而這個值,可以通過git log來查看:

$ git log commit ea017b63e4043e7750efd2eb39f39d5668b69ec4 Author: Fndroid <1603808949@qq.com> Date: Fri Aug 12 21:25:03 2016 +0800create readme.txt and modified the test.txtcommit 5b59dc7a5aa1338b06f107dea6492842a5c3286d Author: Fndroid <1603808949@qq.com> Date: Fri Aug 12 21:02:30 2016 +0800first commit

可以看到,我們提交了兩次,每次的commit后面有一串長長的時間點哈希值,我們可以根據(jù)這個哈希值回退到那一次的提交點:

$ git reset --hard 5b59dc7a5aa1338b06f107dea6492842a5c3286d HEAD is now at 5b59dc7 first commit

這個時候,回到你的項目根目錄中可以看到,我們創(chuàng)建的readme.txt文件已經(jīng)不見了,而且,test.txt文件的內(nèi)容被還原為Hello Git

回退操作會拋棄會退點以后的所有提交,所以,請謹(jǐn)慎。

到這里,整一個流程已經(jīng)走完了,我們已經(jīng)可以自如的控制這個工程的多個版本了。


?

分支

在上面的這個內(nèi)容中,我們的項目的不同版本是建立在一條直線上的,如果回退,那么在回退點的后所有的提交都會丟失,實際上還做不到隨心所欲,所以,分支就出來了。

我們可以通過git branch命令查看當(dāng)前所在的分支:

$ git branch * master

*開頭的就是所在的分支,這里默認(rèn)的情況下只有一個master分支。

而一般的情況下,我們項目的穩(wěn)定版,都應(yīng)該是在這一個分支,而其他的新功能和bug修復(fù),可以新創(chuàng)建一些分支進(jìn)行,當(dāng)代碼完成并通過測試的時候,再和master分支合并來推進(jìn)整個開發(fā)的進(jìn)城。

在我們的Demo中,假設(shè)當(dāng)前的test.txt文件已經(jīng)是穩(wěn)定版(不要驚呆了),我們需要增加一些新功能(就隨便寫幾句話進(jìn)去而已),那么我們可以這樣做:

① 創(chuàng)建一個新的分支:git checkout -b 分支名

$ git checkout -b feature Switched to a new branch 'feature'

這里創(chuàng)建了一個叫做feature的新分支,git自動幫我們切換到這個分支上了。

② 添加新功能

我們在test.txt文件中添加幾句話(代碼),這個隨意吧,例如我的:

③ add和commit

這里在新的分支中,和master分支的操作也是一樣的,我們提交一下這次更新,但是這次,我們可以謹(jǐn)慎一些。

在add之前,我們可通過git diff命令查看當(dāng)前做的改變:

$ git diff test.txt diff --git a/test.txt b/test.txt index e51ca0d..8612dc2 100644 --- a/test.txt +++ b/test.txt @@ -1 +1,3 @@ -Hello Git \ No newline at end of file +Hello Git + +I am a good new feature. \ No newline at end of file

確認(rèn)無誤之后,就可以add和commit了,養(yǎng)成使用diff和status命令的習(xí)慣是很好的。

$ git add test.txt $ git commit -m "add a new feature" [feature 60a91d1] add a new feature1 file changed, 3 insertions(+), 1 deletion(-)

③ 切換分支

假設(shè)這個時候,我們想查看一下master分支的內(nèi)容,就需要進(jìn)行分支切換,代碼非常簡單:

$ git checkout master Switched to branch 'master'

這個時候,可以查看一下我們的test.txt文件的內(nèi)容:

可以看到,切換回來之后,文件的內(nèi)容也被還原了,是不是很神奇。

④ 修改主分支

這里假設(shè),有同事對主分支進(jìn)行了修改,這個文件的內(nèi)容被改為“Hello Android”并且提交了。

$ git add . $ git commit -m "modified test.txt" [master 9f55797] modified test.txt1 file changed, 1 insertion(+), 1 deletion(-)

⑤ 合并分支

假設(shè)我們覺得我們的feature分支修改沒問題也通過了測試,那么我們就可以把feature和master分支進(jìn)行合并了

注意合并之前要先回到master分支,在master分支執(zhí)行合并命令,這里由于有③,就省略了。謹(jǐn)記。

我們執(zhí)行合并命令git merge 分支名:

$ git merge feature Auto-merging test.txt CONFLICT (content): Merge conflict in test.txt Automatic merge failed; fix conflicts and then commit the result.

可以看到,有一個沖突發(fā)生了(CONFLICT),因為我們故意執(zhí)行了③,使得test.txt文件發(fā)生了改變。

如果我們的master分支在我們新建分支feature之后沒有進(jìn)行任何更改,這里就不會有沖突,但是一般不會這么理想,我們要介紹如何解決這個沖突。

⑥ 解決沖突

這個時候我們打開沖突對應(yīng)的文件test.txt

可以看到內(nèi)容發(fā)生變化了,不同分支的內(nèi)容使用“====”分隔開,這個時候我們就要判斷需要哪些內(nèi)容了,假設(shè)我們覺得feature分支的內(nèi)容是正確的,就可以直接在這個文件中更改,把多余的符號和字符刪除即可:

這個時候再進(jìn)行一次add和commit操作:

$ git add . $ git commit -m "fix conflict" [master d918a21] fix conflict

可以看到?jīng)_突被修復(fù)了,這里再重新合并即可:

$ git merge feature Already up-to-date.

⑦ 刪除多余分支

由于我們合并了feature分支,這個時候,feature分支已經(jīng)是多余的了,我們可以安全的把它刪除。

$ git branch -d feature Deleted branch feature (was 60a91d1).

到這里,分支的內(nèi)容也基本掌握了,對于簡單的代碼管理,已經(jīng)沒有問題了。

?

實際上,每一個命令,都有其他一些參數(shù)和用法,如果要了解更多相關(guān)的,可以使用help命令,例如查看add命令的具體用法:

$ git --help add Launching default browser to display HTML ...

會自動打開瀏覽器并顯示對應(yīng)命令的幫助文檔:

這個就需要自己閱讀了。

?

感謝支持。

?

轉(zhuǎn)載于:https://www.cnblogs.com/Fndroid/p/5766818.html

總結(jié)

以上是生活随笔為你收集整理的Android开发学习之路-Git的极简教程?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。