關(guān)于Git的那點(diǎn)小事
建庫(kù)
現(xiàn)在對(duì)于版本管理一般都是使用git了,今天特意來(lái)回顧下git一些基本用法幔荒。這里我采用github當(dāng)倉(cāng)庫(kù)吧,因?yàn)槿粘R矔?huì)上傳一些項(xiàng)目到github上去梳玫。不過(guò)以后公司里面開(kāi)發(fā)爹梁,是不會(huì)把項(xiàng)目放到github上面來(lái)的,那個(gè)可以使用自己的內(nèi)部服務(wù)器提澎,或者搭建個(gè)gitlab都是OK的姚垃。
好了,進(jìn)入正題盼忌,先初始化倉(cāng)庫(kù)吧积糯,這里我新建了個(gè)Android項(xiàng)目掂墓,當(dāng)然這里Android不是關(guān)鍵,其他文件夾都可以看成。
git init 就是初始化git倉(cāng)庫(kù)君编,這里我是直接在IDEA的命令行窗口輸入命令的(當(dāng)然,你得先裝git川慌。吃嘿。。)梦重。
然后兑燥,就去github創(chuàng)建一個(gè)空的倉(cāng)庫(kù),拿到它的地址琴拧。
先熟悉下一些常用的git命令:
git init 初始化倉(cāng)庫(kù)
git log 查看日志
git reflog 查看版本號(hào) 這個(gè)版本回滾需要用到
git add XX 把XX文件添加到緩存區(qū)中贪嫂,如果要添加全部文件可以使用 git add -A
git status 查看當(dāng)前倉(cāng)庫(kù)的狀態(tài)
git reset –-hard 版本號(hào) 回到某個(gè)版本
git remote add origin https://github.com/xxx 關(guān)聯(lián)一個(gè)遠(yuǎn)程庫(kù)
git push –u(首次才需要用-u 以后不需要) origin master 把當(dāng)前master分支上傳到遠(yuǎn)程庫(kù)
git clone https://github.com/xxx 從遠(yuǎn)程庫(kù)中克隆項(xiàng)目下來(lái)
git checkout –b other 創(chuàng)建other分支 并切換到other分支上
git branch other 創(chuàng)建other分支
git merge other 在當(dāng)前的分支上合并dev分支
git branch –D other 刪除other分支(我記得是要大寫的)
git stash 把當(dāng)前的工作隱藏起來(lái) 等以后恢復(fù)現(xiàn)場(chǎng)后繼續(xù)工作
git stash list 查看所有被隱藏的文件列表
git stash apply 恢復(fù)被隱藏的文件,但是內(nèi)容不刪除
git stash drop 刪除文件
git stash pop 恢復(fù)文件的同時(shí) 也刪除文件
git remote 查看遠(yuǎn)程庫(kù)的信息
git remote –v 查看遠(yuǎn)程庫(kù)的詳細(xì)信息
git push origin master Git會(huì)把master分支推送到遠(yuǎn)程庫(kù)對(duì)應(yīng)的遠(yuǎn)程分支上
熟悉了一些常用的命令后艾蓝,我們就可以把本地項(xiàng)目關(guān)聯(lián)github遠(yuǎn)程倉(cāng)庫(kù)了
我們會(huì)發(fā)現(xiàn)還有這么多文件沒(méi)有添加到緩存區(qū)力崇,那么就可以使用git add -A命令了
當(dāng)你把這些文件提交到緩存區(qū)后push的時(shí)候應(yīng)該會(huì)碰到下面的錯(cuò)誤
error: failed to push some refs to 'https://github.com/Smile52/GitDemo.git'
沒(méi)關(guān)系,這是因?yàn)槟阍趧?chuàng)建github倉(cāng)庫(kù)的時(shí)候選擇創(chuàng)建readme.md文件赢织,把它合過(guò)來(lái)就行了,下面就是命令
git pull --rebase origin master
合并過(guò)來(lái)后你會(huì)發(fā)現(xiàn)本地項(xiàng)目多了個(gè)readme.md文件亮靴,然后你就可以開(kāi)始push到github倉(cāng)庫(kù)里了。
提交的時(shí)間取決你的網(wǎng)速于置,再加上github的服務(wù)器在國(guó)外茧吊,所以請(qǐng)耐心等待。Push完成后可以就github看看自己剛剛提交的項(xiàng)目吧八毯。
到此為止搓侄,提交到github就告一段落了。
版本回滾
平時(shí)開(kāi)發(fā)的過(guò)程中可能需要回到以前的某次提交的版本话速,那么強(qiáng)大的git是可以支持版本回滾的讶踪。
下面是最開(kāi)始的版本
接下來(lái)我要添加行代碼
添加代碼后,提交到github上去泊交。接下來(lái)準(zhǔn)備回到最開(kāi)始的版本了乳讥,先查看下歷史版本號(hào),git reflog
那個(gè)最前的就是版本號(hào)廓俭,我們可以通過(guò)開(kāi)始的一個(gè)命令回到最開(kāi)始的版本
這時(shí)你再看看看項(xiàng)目云石,就回到最開(kāi)始的版本了,那行日志消失了研乒,到這里版本回滾就告一段落了汹忠。
分支管理
分支管理是git的一個(gè)優(yōu)勢(shì),一個(gè)項(xiàng)目是可以分很多個(gè)分支,在日常開(kāi)發(fā)中宽菜,這個(gè)是很有必要的奖地,不用的分子去開(kāi)發(fā)不同模塊,到時(shí)合并到主干上來(lái)就行(沖突要注意)
創(chuàng)建新的分支赋焕,在開(kāi)始有寫這個(gè)命令参歹,就是git branch other,當(dāng)然也可以git checkout –b other創(chuàng)建新分支并切換到新分支下隆判。
分支合并就是git merge other 犬庇,從當(dāng)前分支上合并一個(gè) other分支。
還有一些刪除分支侨嘀,上面都是有相應(yīng)的命令的臭挽。
這里有個(gè)是要注意的,就是分支切換需要先提交再切換咬腕,不然是不成功的欢峰。
以上就是git的日常使用,當(dāng)然它的功能并不僅僅如此涨共,還有更強(qiáng)大的纽帖,需要去慢慢挖掘。