本文是《程序猿叨叨叨》系列文章中的其中一篇,想要了解更多相關(guān)的文章,歡迎猛戳藍(lán)字前往閱讀。
在前面幾篇中,筆者曾多次和大家提到過(guò)Github網(wǎng)站,作為全球最大的同性交友網(wǎng)站,想必,各位小伙伴們也是迫不及待地在這個(gè)網(wǎng)站上找到自己的知己。如同在百合網(wǎng)相親一樣,我們需要上傳自己的個(gè)人信息供其他人了解,在Github上,代碼就是我們的名片。今天在Level 6的修煉道路上,我們來(lái)學(xué)習(xí)一下常用的git指令。
Git常用命令速查表
這張表包含了大部分我們上傳項(xiàng)目代碼時(shí)用到的命令,但是毫無(wú)頭緒地查看這張表,對(duì)于我們未接觸過(guò)Git的小伙伴們來(lái)說(shuō)肯定是無(wú)從下手的,所以我們按照上傳一個(gè)項(xiàng)目的流程過(guò)一下我們使用的Git命令。
上傳代碼流程
-
注冊(cè)Github賬號(hào)
注冊(cè)Github賬號(hào)
點(diǎn)擊這里進(jìn)行賬號(hào)的注冊(cè),注冊(cè)過(guò)程在此不做過(guò)多講解,各位讀者們按照套路來(lái)即可。
-
新建Github倉(cāng)庫(kù)
新建Github倉(cāng)庫(kù)
這里的倉(cāng)庫(kù)指的就是Github網(wǎng)站上存放代碼的地方,點(diǎn)擊這里新建我們的項(xiàng)目,按套路填寫項(xiàng)目的相關(guān)信息,這里提一點(diǎn):
新建項(xiàng)目時(shí)有一個(gè)Initialize this repository with a README選項(xiàng),如果勾選,會(huì)在新建項(xiàng)目過(guò)程中生成一個(gè)README.md的文件,md指的是Markdown文件,其作用是對(duì)我們的項(xiàng)目進(jìn)行描述,以比較有名的ButterKnife為例,我們看到的下圖內(nèi)容,就是通過(guò)README.md文件實(shí)現(xiàn)的,它出現(xiàn)在項(xiàng)目根目錄中,方便他人對(duì)我們的項(xiàng)目進(jìn)行了解。
QQ20161102-2.png
新建完畢后,若出現(xiàn)如下圖所示,則我們新建項(xiàng)目完畢,我們可以看到我們的遠(yuǎn)程(即Github項(xiàng)目網(wǎng)站上的,下同)項(xiàng)目文件結(jié)構(gòu):
Github項(xiàng)目結(jié)構(gòu) -
配置Git命令環(huán)境
Git命令需要在對(duì)應(yīng)的環(huán)境下才能使用,本節(jié)我們來(lái)下載配置Git命令環(huán)境,點(diǎn)擊這里進(jìn)入Git下載頁(yè)面進(jìn)行下載:
git下載頁(yè)面
下載安裝按套路一步一步來(lái),安裝完畢后,Git命令環(huán)境也就搭建完成了。 上傳本地工程代碼
筆者開發(fā)安卓,所以上傳的代碼以安卓工程為例,打開命令行,進(jìn)入項(xiàng)目根目錄,開始如下操作:
// 進(jìn)入項(xiàng)目根目錄,當(dāng)前項(xiàng)目名為Mitu,本地項(xiàng)目名和遠(yuǎn)程倉(cāng)庫(kù)的命長(zhǎng)可以不一致
cd /Volumes/J_Eric/J_workRoom/AndroidStudio/MiTu
// 初始化本地項(xiàng)目的git,會(huì)在當(dāng)前目錄下生成一個(gè).git文件夾,所有的git配置都在其中
git init
// 建立遠(yuǎn)程連接,項(xiàng)目連接可在Github相應(yīng)目錄下得到,如下圖
git remote add origin https://github.com/inerdstack/MyFirstProject.git
// 添加賬戶信息:賬戶名
git config user.name "inerdstack"
// 添加賬戶信息:綁定的郵箱
git config user.email "wjnovember@gmail.com"
// 添加本地項(xiàng)目文件(夾子),"."或"-A"表示添加所有文件
// 若添加個(gè)別文件,可以輸入文件路徑,多個(gè)文件之間以空格隔開
git add .
// 添加本次提交描述
git commit -m "我的第一次提交"
// 因?yàn)槲覀冞h(yuǎn)程新建項(xiàng)目的時(shí)候,自動(dòng)生成了README.md的文件
// 所以我們需要將遠(yuǎn)程的文件先拉到本地,與本地文件進(jìn)行合并比較
// master表示項(xiàng)目的分支,默認(rèn)主分支(master)
git pull origin master
// 拉到本地后,進(jìn)行核查,如果文件不存在沖突,則進(jìn)行上傳,將本地項(xiàng)目推上去
git push origin master
至此,我們項(xiàng)目上傳完畢,可以在Github網(wǎng)站上看到工程文件:
上面我們講解的是HTTPS的上傳方式,除此之外,我們還可以使用SSH的方式上傳,與HTTPS基本類似,其區(qū)別有以下兩點(diǎn):
1.在git push命令前添加項(xiàng)目的deploy key:
在Terminal中輸入:
// 生成key
ssh-keygen -t rsa -C "Github的注冊(cè)郵箱地址"
// 打開key文件所在的文件夾,默認(rèn)路徑:~/.ssh
open ~/.ssh
打開id_rsa.pub文件,復(fù)制所有內(nèi)容,進(jìn)入Github倉(cāng)庫(kù)里的Deploy key設(shè)置頁(yè)面,點(diǎn)擊Add deploy key,在key項(xiàng)粘貼復(fù)制的內(nèi)容,輸入好標(biāo)題(隨意輸入)點(diǎn)擊Add key完成key的添加。
2.git remote add origin鏈接改為:
創(chuàng)建分支
在實(shí)際開發(fā)中,開發(fā)者會(huì)把上線的代碼和平時(shí)寫的代碼區(qū)分開,這時(shí)候需要?jiǎng)?chuàng)建一個(gè)分支(注意與默認(rèn)的主分支master區(qū)別開),上線的代碼放到主分支上,平時(shí)的代碼每完成一個(gè)模塊就會(huì)放到新建的分支上。
創(chuàng)建分支分兩部分:
1. 遠(yuǎn)程創(chuàng)建分支
在遠(yuǎn)程的項(xiàng)目倉(cāng)庫(kù)中,點(diǎn)擊branch,在輸入框輸入新分支的名稱,按回車鍵完成遠(yuǎn)程分支的創(chuàng)建,新建的分支,其文件目錄與創(chuàng)建時(shí)master的文件目錄一樣。
2. 本地創(chuàng)建分支并上傳
打開Terminal,在本地項(xiàng)目根目錄下,實(shí)現(xiàn)如下操作:
// 創(chuàng)建一個(gè)新的分支
git checkout -b "debug"
// 拉分支上的代碼到本地,實(shí)現(xiàn)代碼同步
git pull origin debug
// 推本地的代碼到遠(yuǎn)程的分支
git push origin debug
克隆工程
當(dāng)工程項(xiàng)目上傳Github后,需要在另一臺(tái)設(shè)備上得到項(xiàng)目代碼,這時(shí)候我們可以使用克隆將遠(yuǎn)程的代碼拿到本地,Terminal命令如下:
// 將遠(yuǎn)程的倉(cāng)庫(kù)克隆到本地
git clone https://github.com/inerdstack/MyFirstProject.git
// 若想遠(yuǎn)程克隆分支上的代碼,則添加-b 分支名
git clone -b debug https://github.com/inerdstack/MyFirstProject.git
這里注意一下:克隆過(guò)來(lái)的工程文件夾里面是不包含.git文件的,所以克隆過(guò)來(lái)的項(xiàng)目若要上傳Github需要重新按項(xiàng)目上傳流程走一遍。
分支合并
當(dāng)項(xiàng)目上線時(shí),次分支上的代碼會(huì)同步到主分支上,我們會(huì)用到分支的合并,打開命令行,進(jìn)行如下操作:
// 將當(dāng)前分值切換到主分支
git checkout master
// 將次分支的文件合并到主分支
git merge origin/debug
筆者使用上述指令合并了分支,但Github上的倉(cāng)庫(kù)依然未顯示分支合并,debug分支上的文件未同步到主分支,對(duì)此表示不解,若各位讀者們知曉其中的錯(cuò)誤,歡迎指正。對(duì)于分支的新建與合并,想要了解更多可點(diǎn)擊這里。
以上即常用git指令的簡(jiǎn)單操作,感謝大家的閱讀!