前言
- Git 的安裝,使用,將代碼托管到GitHub、GitBlit上
下載安裝
- 訪問網(wǎng)址https://git-for-windows.github.io/,點(diǎn)擊Download按鈕開始下載,下載完成后雙擊安裝包進(jìn)行安裝,之后一直點(diǎn)擊“下一步” 就可以完成安裝了。
創(chuàng)建代碼倉庫
- 首先配置一下你的身份,這樣提交代碼時(shí)Git就可以知道是誰提交的了,命令如下所示:
git config --global user.name "UserName"
git config --global user.email "UserName@gmail.com"
配置完成后可以使用同樣的命令來查看是否配置成功,只需要將最后的名字和郵箱地址去掉即可。
- 倉庫(Repository)是用于保存版本管理所需信息的地方,所有本地提交的代碼都會(huì)被提交到代碼倉庫中,如果有需要還可以再推送到遠(yuǎn)程倉庫中。比如我們要給Cart項(xiàng)目建立一個(gè)代碼倉庫,打開Git Bash使用命令:
cd /e/as-dmo/Cart, 進(jìn)入Cart項(xiàng)目的目錄下面,然后在這個(gè)目錄下面輸入如下命令即可:
git init
創(chuàng)建完成后,會(huì)在Cart項(xiàng)目的根目錄下生成一個(gè)隱藏的.git文件夾,這個(gè)文件夾就是用來記錄本地所有的Git操作的,可以通過ls -al命令查看一下。如果你想要?jiǎng)h除本地倉庫,只需要?jiǎng)h除這個(gè)文件夾就行了。
提交本地代碼
git add build.gradle //添加單個(gè)文件的方法
git add app //添加單個(gè)目錄的方法
git add . //表示添加所有的文件
git commit -m "第一次提交代碼" //提交代碼
忽略文件
- Android Studio 在創(chuàng)建項(xiàng)目的時(shí)候,會(huì)自動(dòng)幫我嗎,們創(chuàng)建出兩個(gè)
.gitignore文件,一個(gè)在根目錄下,一個(gè)在app模塊下面,根目錄下面的.gitignore文件,如下所示:
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
這是Android Studio 自動(dòng)生成的一些默認(rèn)配置,通常情況下,這部分內(nèi)容都是不用添加到版本控制當(dāng)中的。
再來看一下app模塊下面的.gitignore文件,如下所示:
/build
由于app模塊下面基本都是我們編寫的代碼,因此默認(rèn)情況下,只有其中的build目錄不會(huì)被添加到版本控制當(dāng)中。當(dāng)然,我們完全可以對(duì)以上兩個(gè)文件進(jìn)行任意地修改,來滿足特定的需求,比如說,app模塊下面的所有測(cè)試文件都只是給我自己使用的,我并不想把它們添加到版本控制中,那么就可以這樣修改app/.gitignore文件中的內(nèi)容:
/build
/src/test
/src/androidTest
查看修改內(nèi)容
- 在項(xiàng)目的根目錄下,輸入如下命令:
git status
假設(shè)將項(xiàng)目中的MainActivity.java里的代碼改動(dòng)一下,將書的價(jià)格由22.85改成 55.55,然后重新輸入git status命令,可以看到Git 提醒我們MainActivity.java這個(gè)文件已經(jīng)發(fā)生了更改,想要查看所有文件更改的內(nèi)容,輸入命令:
git diff
只想查看MainActivity.java文件的更改內(nèi)容,可以使用如下命令:
git diff app/src/main/java/com/example/providertese/MainActivity.java
其中,減號(hào)代表刪除的部分,加號(hào)代表添加的部分,從中我們就可以明顯地看到,書的價(jià)格由22.85被修改成了55.55。
撤銷未提交的修改
- 有時(shí)候我們代碼可能寫得過于草率,以至于原本正常的功能,結(jié)果反倒被我們改出了問題。遇到這種情況,只要代碼還未提交,所有修改的內(nèi)容都是可以撤銷的。
比如上一小節(jié)中我們修改了MainActivity 里書的價(jià)格,現(xiàn)在想要撤銷這個(gè)修改,可以使用checkout命令,用法如下所示:
git checkout app/src/main/java/com/example/providertese/MainActivity.java
重新運(yùn)行git status命令檢查一下,可以看到,當(dāng)前項(xiàng)目中沒有任何可以提交的文件,說明撤銷操作確實(shí)是成功了。不過這種撤銷方式只適用于那些還沒有執(zhí)行過add命令的文件,如果某個(gè)文件已經(jīng)被添加過了,這種方式就無法撤銷其更改的內(nèi)容。我們執(zhí)行一遍checkout命令,你會(huì)發(fā)現(xiàn)MainActivity 仍然是處于已添加狀態(tài),所修改的內(nèi)容無法撤銷。這時(shí),我們需要對(duì)已添加的文件進(jìn)行取消添加操作,然后才可以撤回提交,用法如下所示:
git reset HEAD app/src/main/java/com/example/providertese/MainActivity.java
然后再運(yùn)行一遍git status命令,你就會(huì)發(fā)現(xiàn)MainActivity.java這個(gè)文件重新變回了未添加狀態(tài),此時(shí)就可以使用checkout命令來將修改的內(nèi)容進(jìn)行撤銷了。
查看提交記錄
- 當(dāng)項(xiàng)目開發(fā)幾個(gè)月之后,我們可能已經(jīng)執(zhí)行過上百次的提交操作了,這個(gè)時(shí)候估計(jì)你早就已經(jīng)忘記每次提交都修改了哪些內(nèi)容。使用
log命令查看歷史提交信息,用法如下所示:
git log
可以看到,每次提交記錄都會(huì)包含提交id、提交人、提交日期以及提交描述這個(gè)4個(gè)信息。當(dāng)提交記錄非常多的時(shí)候,如果我們只想看到一行記錄,可以在命令中指定該記錄的id,并加上-1參數(shù)表示我們只想看到一行記錄,如下所示:
git log 1fa380b502a00b82bfcb8d84c5ab5e15b8fbf7dac -1
而如果想要查看這條提交記錄其他修改了什么內(nèi)容,可以在命令中加入-p參數(shù),命令如下:
git log 1fa380b502a00b82bfcb8d84c5ab5e15b8fbf7dac -1 -p
查詢中的結(jié)果,其中減號(hào)代表刪除的部分,加號(hào)代表添加的部分。
將代碼托管到 GitHub上
- 打開Git Bash 并切換到CoolWeather的工程目錄下,將遠(yuǎn)程版本庫克隆到本地,輸入命令:
git clone https://github.com/guolindev/coolweather.git
克隆成功后,將.gitignore、LICENSE、README.md、.git(隱藏目錄,不要漏掉)這4個(gè)文件復(fù)制到本地。
- 將項(xiàng)目中現(xiàn)有的文件提交到Github上面,只需3個(gè)命令即可,如下所示:
git add .
git commit -m "第一次提交代碼"
git push origin master
更新本地代碼,從 GitHub上下載更新的代碼
- 如果不是使用Android Studio 菜單欄上的
Update Project按鈕來更新本地的代碼,比如是使用Visual Studio Code來開發(fā)的Web項(xiàng)目,那么,需要使用Git在項(xiàng)目的目錄下使用如下兩個(gè)命令即可:
git checkout master
git pull