【7】版本管理神器——Git指令

本文是《程序猿叨叨叨》系列文章中的其中一篇,想要了解更多相關(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
得到遠(yuǎn)程鏈接

至此,我們項(xiàng)目上傳完畢,可以在Github網(wǎng)站上看到工程文件:

遠(yuǎn)程代碼

上面我們講解的是HTTPS的上傳方式,除此之外,我們還可以使用SSH的方式上傳,與HTTPS基本類似,其區(qū)別有以下兩點(diǎn):

1.在git push命令前添加項(xiàng)目的deploy key:

Add deploy key

在Terminal中輸入:

// 生成key
ssh-keygen -t rsa -C "Github的注冊(cè)郵箱地址"
// 打開key文件所在的文件夾,默認(rèn)路徑:~/.ssh
open ~/.ssh
.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鏈接改為:

SSH

創(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)程創(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)單操作,感謝大家的閱讀!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,182評(píng)論 6 543
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,489評(píng)論 3 429
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,290評(píng)論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,776評(píng)論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 72,510評(píng)論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,866評(píng)論 1 328
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,860評(píng)論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 43,036評(píng)論 0 290
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,585評(píng)論 1 336
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 41,331評(píng)論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 43,536評(píng)論 1 374
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,058評(píng)論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,754評(píng)論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,154評(píng)論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,469評(píng)論 1 295
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 52,273評(píng)論 3 399
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 48,505評(píng)論 2 379

推薦閱讀更多精彩內(nèi)容