【Android】29.0 Git版本的使用和GitHub上傳個(gè)人項(xiàng)目

1.0 安裝Git

百度,進(jìn)入Git官網(wǎng)下載最新版,安裝,選好安裝位置后,一路下一步。

2.0 創(chuàng)建代碼倉庫

雖然在windows上安裝的Git是可以在圖形界面上進(jìn)行操作的。并且Android Studio也支持以圖形化的形式操作Git。但是Git的各種命令才是應(yīng)該掌握的核心技能,不管在哪個(gè)操作系統(tǒng)中使用命令來操作Git肯定是通用的。圖形化的操作應(yīng)該是掌握命令用法的前提下,進(jìn)一步提升自己的工作效率。

2.1 通過命令使用Git

如果你使用的是Linux系統(tǒng),先打開shell界面,如果使用的是windows系統(tǒng),從開始菜單中找到Git Bash并打開。


image.png

首先配置一下自己的身份,這樣可以在提交代碼的時(shí)候Git就可以知道是誰提交的,命令如下所示:

git config --global user.name "edpeng"
git config --global user.email "edpeng@gmail.com"
image.png

image.png

配置完成后可以使用同樣的命令來查看是否配置成功,只需要將最后的名字和郵箱地址去掉即可。


image.png
2.2 創(chuàng)建代碼倉庫

倉庫(Repository)是用來保存版本管理所需信息的地方。所有本地提交的代碼都會被提交到代碼倉庫中,如果有需要還可以再推送到遠(yuǎn)程倉庫中。
下面嘗試給PortableAnti_theft項(xiàng)目建立一個(gè)代碼倉庫。
先進(jìn)入到PortableAnti_theft項(xiàng)目的目錄下面,注意路徑是正斜杠。

cd G:
cd workspace/Android/PortableAnti_theft/
image.png

image.png

在接下來的操作之前,需要設(shè)置兩個(gè).gitignore文件
一個(gè)是項(xiàng)目下的.gitignore文件

*.iml
.gradle
/local.properties
/.idea/caches
/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml
/.idea/navEditor.xml
/.idea/assetWizardSettings.xml
.DS_Store
/build
/captures
.externalNativeBuild

一個(gè)是app目錄下的.gitignore文件

/build

凡是出現(xiàn)的目錄或文件,表示不進(jìn)行版本控制。

然后輸入如下指令,只需要一行命令就可以完成創(chuàng)建代碼倉庫的操作。

git init
image.png

倉庫創(chuàng)建完后會在PortableAnti_theft項(xiàng)目的根目錄下生成一個(gè)隱藏的.git文件夾,這個(gè)文件夾是用來記錄本地所有的git操作的,可以通過ls -al命令來查看一下,如下所示。


image.png

如果要?jiǎng)h除本地倉庫,只需要?jiǎng)h除這個(gè)文件夾就行了。

3.0 提交本地代碼

代碼倉庫建立完之后就可以提交代碼了,其實(shí)提交代碼的方法也非常簡單,只需要使用add和commit命令就可以了。

add 把想要提交的代碼先添加進(jìn)來。
commit 真正去執(zhí)行提交操作。

git add build.gradle
git add app

但是,如上方法進(jìn)行添加有些復(fù)雜,只需要在add的后面添加一個(gè)點(diǎn),就表示添加所有的文件了,命令如下所示。

git add .
image.png

現(xiàn)在項(xiàng)目下的所有文件都已經(jīng)添加好了,輸入如下命令提交。

git commit -m "First commit"
image.png

需要注意的是,在commit命令的后面一定要通過-m參數(shù)來加上提交的描述信息。沒有描述信息的提交被認(rèn)為是不合法的。這樣所有的代碼就已經(jīng)成功提交了。

4.0 查看修改內(nèi)容

查看文件修改情況的方法非常簡單,在項(xiàng)目的根目錄下輸入命令:

git status
image.png

這時(shí)候提示沒有任何可提交的文件,因?yàn)槲覀儎倓偺峤贿^。
如何查看更改后的內(nèi)容?

git diff
git diff app/src/main/java/com/example/portableanti_theft/Activity/MainActivity.java
5.0 撤回未提交的修改
git checkout app/src/main/java/com/example/portableanti_theft/Activity/MainActivity.java
6.0 查看歷史提交信息
git log
image.png

只想查看其中一條的信息,可以在命令中指定該記錄的id并加上-1參數(shù)表示我們只想看到一行記錄。

git log 5e78e6b0dd69e2d4ca8750db46b4d23d5af358a8 -1

如果想查看這條記錄具體修改了什么內(nèi)容,可以在命令中加入-p參數(shù)。

git log 5e78e6b0dd69e2d4ca8750db46b4d23d5af358a8 -1 -p
image.png

其中減號(紅色)代表刪除的部分,加號(綠色)代表添加的部分(藍(lán)色代表該版本內(nèi)沒有變動的)。


image.png
7.0 分支的用法

開發(fā)中的版本迭代:


image.png
7.1 查看當(dāng)前版本庫中有哪些分支
git branch
image.png

master: 主干線
AndroidX:自己之前創(chuàng)建的分支

其中我們的AndroidX最左邊有個(gè)“*”號,表示我們的代碼在AndroidX分支上

7.1 創(chuàng)建分支
git branch version1.0

這樣就創(chuàng)建了一個(gè)名為 version1.0的分支

7.2 切換分支
git checkout master
image.png
7.2 合并分支
git checkout master
git merge version 1.0
7.2 刪除分支
git branch -D version1.0



8.0 與遠(yuǎn)程版本協(xié)作
8.1下載到本地

比如現(xiàn)在有一個(gè),遠(yuǎn)程版本庫的Git地址是http://github.com/example/test.git,就可以使用如下命令將代碼下載到本地:

git clone http://github.com/example/test.git
8.2本地同步遠(yuǎn)程版本庫

借助push命令將本地內(nèi)容同步到遠(yuǎn)程版本庫:

git push origin master

其中origin部分表示遠(yuǎn)程版本庫的Git地址,master部分指定的是同步到哪一個(gè)分支上。


image.png

中間會彈出登錄窗口,輸入賬號密碼,即可完成上傳。


image.png

登錄Github,進(jìn)入該項(xiàng)目主頁:
image.png
8.3 遠(yuǎn)程同步本地

將遠(yuǎn)程版本庫上的修改同步到本地,Git提供兩種命令來完成此功能,分別是fetch和pull,fetch的語法規(guī)則和push是差不多的:

git fetch origin master

執(zhí)行此命令后,將會將遠(yuǎn)程版本庫上的代碼同步到本地,不過同步下來的代碼并不會合并到任何分支上去,而是會存放到一個(gè)origin/master分支上,這時(shí)候可以通過different命令來查看遠(yuǎn)程版本庫上到底修改了哪些東西:

git diff origin/master

之后再調(diào)用merge命令將origin/master分支上的修改合并到主分支上即可:

git merge origin/master

而pull命令就相當(dāng)于將fetch和merge這兩個(gè)命令放在一塊執(zhí)行,可以從遠(yuǎn)程版本庫上獲得的最新的代碼并合并到本地:

git pull origin master
9.0 將代碼托管到GitHub上
9.1 新建GitHub項(xiàng)目倉庫

首先 我們本地有一個(gè)項(xiàng)目,GitHub也有一個(gè)項(xiàng)目倉庫。我的采用的是添加一個(gè)Android項(xiàng)目類型的.gitignore文件,并使用Apache License 2.0 開源協(xié)議。

輸入

git clone https://github.com/bobokaka/PortableAnti_theft-APP

把遠(yuǎn)程版本庫克隆到本地。

9.1 復(fù)制合并

將下載下來的文件復(fù)制到上一層目錄中,覆蓋即可。


image.png

然后刪除PortableAnti_theft-APP目錄。

9.3 提交項(xiàng)目

先將所用文件添加到版本控制中“”

git add .

在本地執(zhí)行提交操作。

git commit -m "First GitHub commit"

最后將提交的內(nèi)容同步到遠(yuǎn)程版本庫,也就是GitHub上面:

git push https://github.com/bobokaka/PortableAnti_theft-APP AndroidX

其中的AndroidX是我自己自命名的版本分支的名稱。


image.png

image.png

登錄GitHub網(wǎng)站,可以看到提交的文件已經(jīng)存在了。


image.png
10.0 其他命令

git 查看、切換用戶
查看命令:
查看用戶名:

git config user.name

查看用戶郵箱:

git config user.email

修改命令:
修改用戶名:

git config --global user.name "Your_username"

修改用戶郵箱:

git config --global user.email "Your_email"

注:user.name或者user.email后需有一個(gè)空格,再寫你的用戶名或者用戶郵箱

11.0 一些bug的處理
11.1 切換GitHub賬戶或者GitLab賬戶

之前沒有登陸過的會自動彈出窗體讓你輸入賬號密碼,可是換別人的賬號登錄,就會下載不下來。


image.png

百度的解決方案都是設(shè)置什么SSH key,扯淡,主要是修改自己的數(shù)據(jù)憑據(jù):


image.png

修改保存,即可切換。

11.2 拉取指定分支代碼解決方案:

以拉取develop分支的代碼為例, 要拉取其余分支代碼類似操作
使用git命令拉取

命令:git clone -b develop XXX 

其中develop就是分支的名稱

11.3 回滾版本

先查看保存記錄

git log -3

只查看前3條。

git reset --hard e377f60e28c8b84158

強(qiáng)行提交

git push -f origin master
11.4 刪除分支

1、查看所有分支

git branch -a

2、查看當(dāng)前所在分支

git branch

3、刪除本地的bug_xzx分支

git branch -d bug_xzx

4、刪除遠(yuǎn)程的bug_xzx分支

git push origin --delete bug_xzx

5、Git中的.gitignore文件配置了之后,不生效問題

解決方法

git rm -r --cached .

git add .

git commit -m '代碼提交'

git push origin
 

git rm -r --cached:保留本地文件,刪除staging area中的文件
git add 本地文件加入到staging area中
提交
push
6.強(qiáng)行合并分支(demo默認(rèn)在master分支上)

 git merge --strategy-option=theirs dev_pre --allow-unrelated-histories

將dev_pre 強(qiáng)行覆蓋合并master分支

--strategy-option=ours  反之

報(bào)錯(cuò):

fatal: unable to access 'https://git.gwi.com.cn:9103/customization/ningbocb/kiosk-cli-2nd.git/': SSL certificate problem: self signed certificate

解決:

git config --global http.sslVerify false

END

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容