使用git對代碼倉庫的版本控制,windows和linux下皆可使用

在Windows上安裝Git或者linux上安裝Git

我們需要先把Git的安裝包下載下來,訪問網址:https://git-for-windows.github.io/

或者百度網盤:鏈接: https://pan.baidu.com/s/1A7MKIoGGPZ4n6Gk03gwasQ 提取碼: h87w

點擊Download開始下載,選擇windows或者linux平臺,下載完成後雙擊安裝包進行安裝,之後一直點擊“下一步”就可以完成安裝了。

創建代碼倉庫

首先配置一下身份,這樣在提交代碼的時候Git就可以知道是誰提交的了。打開Git Bash,輸入下面的命令

git config -global user.name "Andy"
git config -global user.email "[email protected]"

配置完成後可以用同樣的命令查看是否配置成功,將最後的名字和郵箱地址去掉即可。如下圖所示:

這裏寫圖片描述

然後就可以開始創建代碼倉庫了,倉庫(Repository)是用於保存版本管理所需信息的地方,所有本地提交的代碼都會被提交到代碼倉庫中,如果有需要還可以再推送到遠程倉庫中。

這裏給 CoolWeather 項目建立一個代碼倉庫。先進入 CoolWeather 項目的目錄下面,如圖:

這裏寫圖片描述

然後輸入命令:

git init

這樣即可完成創建代碼倉庫的操作。

倉庫創建完成後,會在 CoolWeather 項目的根目錄下生成一個隱藏的.git文件夾,這個文件夾是用來記錄本地所有的Git操作的,可以通過”ls -al”命令來查看。如果想要刪除本地倉庫,刪除這個文件夾就行了。

提交本地代碼

代碼倉庫建立完之後就可以提交代碼了,使用add和commit兩個命令就可以。add用來把想要提交的代碼先添加進來,commit用來執行提交操作。比如想添加 build.gradle 文件,可以輸入如下命令:

git add build.gradle

這是添加單個文件的方法,如果想添加一個目錄,在add後面加上目錄名字就可以了。比如要把整個app目錄下的所有文件進行添加,可以輸入下面的命令:

git add app

不過這樣操作有點繁瑣,我們可以用下面這個命令一次性把所有文件都添加好:

git add .

所以,我們要想把 CoolWeather 這個項目提交的話,可以輸入以下命令:

git add .
git commit -m"First commit"

注意,在commit的命令後面,一定要通過-m參數來加上提交的描述信息,沒有描述信息的提交被認爲是不合法的。這樣所有的代碼就已經成功提交了!

忽略文件

我們在進行提交代碼操作的時候,一般並不是所有文件都需要加入到版本控制中。比如Android Studio項目結構中build目錄下的文件都是編譯項目時自動生成的,我們不應該將這部分文件添加到版本控制中,Git提供了一種可配性很強的機制實現這個功能。

Git會檢查代碼倉庫的目錄下是否存在一個名爲.gitignore的文件,如果存在,就一行行讀取這個文件中的內容,並把每一行指定的文件或目錄排除在版本控制之外。注意.gitignore中指定的文件或目錄是可以用“*”通配符的。

Android Studio在創建項目的時候會自動創建出兩個.gitignore文件,一個在根目錄下面,一個在app模塊下面。我們只需要修改.gitignore文件中的內容,即可讓一些文件不被添加到版本控制中。

比如app模塊下的所有測試文件都只是給我自己使用的,我並不想把它們添加到版本控制中,那麼就可以這樣修改app/.gitignore文件中的內容:

/build
/src/test
/src/androidTest

注:第一行的/build是自帶的。

下面再進行提交

git add .
git commit -m"First commit"

這樣即可將app模塊下的所有測試文件不被添加到版本控制中。

查看修改內容

有時我們寫項目寫到後面忘記了前面修改什麼東西了,我們可以使用Git查看自上次提交後文件修改的內容。

在項目的根目錄下輸入如下命令:

git status

如果我們剛剛纔提交過代碼,那麼Git會提示目前項目中沒有任何可提交的文件。如果我們自上次提交代碼已經做過了一些改動,那麼Git會提醒哪個文件發生了更改。藉助diff命令可以看到所有文件的更改內容:

git diff

如果只想查看MainActivity.java這個文件的更改內容,可以使用如下命令:

git diff app/src/main/java/com/example/coolweather/MainActivity.java

我們就可以看到具體的改動情況。其中,減號代表刪除的部分,加號代表添加的部分。

撤銷未提交的修改

有時我們寫代碼過於草率,將正常的功能的代碼修改出了問題。不過不用着急,只要代碼還沒提交,所有修改的內容都是可以撤銷的。

比如我們想要撤銷對MainActivi.java中內容的修改,我們可以用這個命令:

git checkout app/src/main/java/com/example/coolweather/MainActivity.java

執行這個命令以後,我們對MainActivi.java做的一切修改都會被撤銷。不過這種撤銷方式只適用於那些還沒執行過add命令的文件。如果我們想要對一個已經添加過的文件撤銷修改,那麼我們要先使用reset命令對其取消添加,然後纔可以撤回提交。用法如下:

git reset HEAD app/src/main/java/com/example/coolweather/MainActivity.java

然後再使用checkout命令將修改的內容進行撤銷。

查看提交記錄

當一個項目開發了幾個月之後,我們早就忘了每次提交都修改了哪些內容。我們可以使用log命令查看歷史提交信息:

git log

每次提交記錄都會顯示提交id、提交人、提交日期及提交描述這四個信息。

如果我們只想查看其中一條記錄,可以在命令中指定該記錄的id,並加上 -1參數,表示我們只想看到一行記錄:

git log 1fa380b502a00b82bfc8d84c5ab5e15b8fbf7dac -1

如果想要查看這條提交記錄具體修改了什麼內容,可以在命令中加入 -p參數:

git log 1fa380b502a00b82bfc8d84c5ab5e15b8fbf7dac -1 -p

分支的用法

分支的主要作用就是在現有代碼的基礎上開闢一個分叉口,使得代碼可以在主幹線和分支線上同時進行開發,且相互之間不會影響。

如果想要查看當前的版本庫中有哪些分支,可以使用git branch這個命令。如果項目中沒有創建過任何分支,那麼只會有一個master分支存在,也就是主幹線。

這裏寫圖片描述

建立分支可以用下面的命令:

git branch version1.0

這樣就創建了一個名爲version1.0的分支,然後再次輸入git branch來檢查一下:

這裏寫圖片描述

你會發現master分支的前面有一個“*”號,說明目前我們的代碼還是在master分支上的,我們可以用checkout命令將代碼切換到別的分支上:

git checkout version1.0

這樣我們就可以把代碼切換到version1.0這個分支上了。

在某個分支上修改並提交的代碼不會影響到其他的分支,如果我們在version1.0分支上修復了一個bug,在master這個分支上這個bug依然存在,我們可以使用merge命令完成合並操作:

git checkout master
git merge version1.0

這樣就可以把version1.0分支上修改並提交的內容合併到master分支上了。

在合併分支的時候還有可能出現代碼衝突的情況,這時候就需要自己慢慢找到並解決這些衝突了。

當我們不再需要version1.0這個分支的時候,可以用如下命令刪除這個分支:

git branch -D version1.0

與遠程版本庫協作

比如現在有一個遠程版本庫的Git地址是:https://github.com/example/test.git,那麼我們可以使用下面的命令將代碼下載到本地:

git clone https://github.com/example/test.git

之後你在這份代碼的基礎上進行了一些修改和提交,再使用push命令將本地的修改內容同步到遠程版本庫上:

git push origin master

其中origin部分指定的是遠程版本庫的Git地址,master部分指定的是同步到哪一個分支上。

對於將遠程版本庫上的修改同步到本地,Git提供了2種命令來完成此功能,分別是fetch和pull。先來講講fetch:

git fetch origin master

執行這個命令後,就會將遠程版本庫上的代碼同步到本地,不過同步下來的代碼不會合併到任何分支上去,而是會存放到一個origin/master分支上,這時我們可以通過diff命令來查看遠程版本庫上到底修改了哪些東西:

git diff origin/master

之後再調用merge命令將origin/master分支上的修改合併到主分支上:

git merge origin/master

而pull命令則是相當於將fetch和merge兩個命令放在一起執行了

git pull origin master

將代碼託管到GitHub上

註冊GitHub賬號並登陸,點擊Start a project來創建一個版本庫。可以對版本庫命名,然後選擇添加一個Android項目類型的.gitignore文件,並使用Apache License 2.0來作爲該項目的開源協議。接着點擊Create repository,這個版本庫就創建完成了,紅框裏的就是這個版本庫的Git地址。

這裏寫圖片描述

然後打開Git Bash並切換到CoolWeather的工程目錄下,輸入下面的命令將遠程版本庫克隆到本地。

git clone https://github.com/jshguoxin/coolweather.git

現在我們需要將這個目錄中的文件全部複製粘貼到上一層目錄中,這樣就能將整個CoolWeather工程目錄添加到版本控制中去了。注意.git是一個隱藏目錄,在複製的時候千萬不要漏掉。另外,在上一層目錄中也有一個.gitignore文件,將其覆蓋即可。複製完成後將coolweather目錄刪除。

接下來應該把CoolWeather項目中現有的文件提交到GitHub上面,輸入下面的命令:

git add .
git commit -m "First commit"
git push origin master
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章