我在实际工作中用的最多的 git 命令
?點(diǎn)擊上方?好好學(xué)java?,選擇?星標(biāo)?公眾號(hào)
重磅資訊、干貨,第一時(shí)間送達(dá) 今日推薦:你這代碼寫得真丑,滿屏的try-catch,全局異常處理不會(huì)嗎?個(gè)人原創(chuàng)+1博客:點(diǎn)擊前往,查看更多前言
最近在工作中頻繁用到git版本管理,期間也遇到了很多的問(wèn)題,平時(shí)也會(huì)使用,但是,在沒(méi)有遇到什么大的問(wèn)題的時(shí)候,還是用的不是特別的熟練,最近,自己在玩的時(shí)候,發(fā)現(xiàn)了很多問(wèn)題,同時(shí),也用git解決了這些問(wèn)題,發(fā)現(xiàn)git真的是個(gè)好東西,用的熟練了,真的棒!!!
所以,今天就花點(diǎn)時(shí)間總結(jié)一下最最常用的一些git命令,不管什么時(shí)候,這些命令都是需要熟練的使用的,這樣才能保證不出錯(cuò),那就開(kāi)始吧!!!
創(chuàng)建倉(cāng)庫(kù)/初始化/提交操作
1、git init
初始化倉(cāng)庫(kù)操作,這樣才能用git進(jìn)行代碼管理。
2、git clone 倉(cāng)庫(kù)地址
復(fù)制遠(yuǎn)程倉(cāng)庫(kù)的代碼到本地。
3、git add XXX
添加本地的某個(gè)新文件到本地倉(cāng)庫(kù),但是,此時(shí)只是提交到了本地倉(cāng)庫(kù),并沒(méi)有提交到遠(yuǎn)程倉(cāng)庫(kù)。
4、git add .
這個(gè)操作和上面的區(qū)別在于,這個(gè)命令會(huì)添加所有的新文件,也就是當(dāng)前目錄下的。
5、git commit -m 'message'
提交代碼到本地倉(cāng)庫(kù),并沒(méi)有到遠(yuǎn)程倉(cāng)庫(kù),不理解的可以去了解一下git的原理。
6、git commit -am 'message'
這個(gè)命令將上面兩個(gè)步驟 add 和 commit 合二為一。
日志查看/信息顯示
1、git log
這個(gè)命令主要用于查看提交日志
2、git status
可以用來(lái)查看倉(cāng)庫(kù)的狀態(tài),在開(kāi)發(fā)中,使用最多的可能就是這個(gè)命令了,建議開(kāi)發(fā)過(guò)程中沒(méi)事就 git status 一下。
如果當(dāng)你不知道你的git分支或者倉(cāng)庫(kù)的狀態(tài)的時(shí)候,記得一定git status一下,不然,可能就會(huì)出問(wèn)題哈。
分支管理
這個(gè)是重頭戲哈,在實(shí)際的工作中,分支創(chuàng)建開(kāi)發(fā)新功能,切換分支簡(jiǎn)直能再多了,如果操作不當(dāng),可能造成很大的麻煩,我在工作中就遇到過(guò)很多不必要的麻煩,而且解決起來(lái)特別難受。
1、創(chuàng)建分支 git branch XXX
可以在遠(yuǎn)程界面創(chuàng)建分支,或者使用命令git branch XXX。
創(chuàng)建的新分支的代碼一般是來(lái)自于master的,所以,比如你創(chuàng)建了新分支test,那么test分支的代碼是和master的代碼是一樣的。
我們還可以使用git branch查看分支。
2、切換分支 git checkout XXX
切換分支:git checkout XXX,這樣就切換到了XXX分支。然后我們?cè)俚絏XX分支進(jìn)行功能的開(kāi)發(fā)工作。
3、 創(chuàng)建分支并且切換分支 git checkout -b XXX
命令:git checkout -b XXX,這條命令就是執(zhí)行了前面的兩條分支,git branch XXX和git checkout XXX,創(chuàng)建并且直接切換到XXX分支,這個(gè)命令的好處在于,當(dāng)你需要進(jìn)行新的功能開(kāi)發(fā)的時(shí)候,你直接創(chuàng)建新分支,然后直接切換了,就可以直接開(kāi)搞了。
其實(shí),我們?cè)陂_(kāi)發(fā)的過(guò)程中會(huì)遇到很多技術(shù),如果大家有興趣,可以看看我的博客blog.ouyangsihai.cn,里面都是我的原創(chuàng)文章,技術(shù)干貨。
4、查看處于哪個(gè)分支 git branch
命令:git branch,可以直接查看本地的所有分支,并且當(dāng)前處于哪個(gè)分支。
如果你問(wèn),我想查看本地和遠(yuǎn)程的所有分支用哪個(gè)命令呢?
5、查看本地和遠(yuǎn)程所有分支 git branch -a
git branch -a,是不是很簡(jiǎn)單。
6、合并分支 git merge
本地有這么多的分支當(dāng)我們完成功能開(kāi)發(fā),需要合并到maste的時(shí)候,應(yīng)該怎么辦呢?
-
切換到master分支,git checkout master
-
合并XXX分支,git merge XXX
-
這時(shí)候如果有沖突就需要解決沖突了。
7、刪除本地分支 git branch -D XXX
當(dāng)我們完成了功能開(kāi)發(fā),且合并到了master的時(shí)候,我們就可以刪除我們當(dāng)前的分支了,命令git branch -D XXX。
注意:當(dāng)前處于XXX分支,XXX分支是不能被刪除的,需要先切換到其他分支。
8、刪除遠(yuǎn)程分支 git push origin --delete XXX
刪除遠(yuǎn)程分支屬于危險(xiǎn)操作,如果權(quán)限不合理,可能會(huì)出現(xiàn)大問(wèn)題。
建議:git branch -a 查看所有分支,再進(jìn)行操作。
9、拉取遠(yuǎn)程分支
git fetch origin develop(develop為遠(yuǎn)程倉(cāng)庫(kù)的分支名)
git checkout -b dev(本地分支名稱) origin/develop(遠(yuǎn)程分支名稱)
git pull origin develop(遠(yuǎn)程分支名稱)
更新管理
1、提交代碼到遠(yuǎn)程 git push origin XXX
本地代碼寫好,提交到遠(yuǎn)程,最常用的操作,XXX就是遠(yuǎn)程的倉(cāng)庫(kù)名稱。最常用:git push origin master,添加到master。
2、拉取遠(yuǎn)程代碼到本地 git pull origin XXX
將遠(yuǎn)程代碼下拉到本地并進(jìn)行合并,等價(jià)于 fetch 和 merge 兩步一起執(zhí)行,但是,這個(gè)其實(shí)是在平時(shí)最常用的命令,一般拉取新代碼的時(shí)候,都直接用這個(gè)命令操作。
另外,本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收錄,這是我花了3個(gè)月總結(jié)的一線大廠Java面試總結(jié),本人已拿大廠offer。
版本回退
其實(shí)在平時(shí)的開(kāi)發(fā)中還是會(huì)遇到一些操作不當(dāng),導(dǎo)致分支出現(xiàn)問(wèn)題,這個(gè)時(shí)候,版本管理的作用就凸顯出來(lái)了,我們可以通過(guò)git提供的版本管理進(jìn)行版本回退操作,這樣可以很快的解決我們得問(wèn)題。
場(chǎng)景:當(dāng)我們開(kāi)發(fā)一段時(shí)間之后,發(fā)現(xiàn)現(xiàn)在跟master分支出了很大的問(wèn)題,我們很有可能需要回退到一個(gè)我們比較合適的代碼版本,然后再進(jìn)行相關(guān)的開(kāi)發(fā)工作。
1、 git reset --hard XXX
這個(gè)命令使用需要注意,會(huì)把當(dāng)前分支的代碼全部回退到以前的一個(gè)版本,不可逆轉(zhuǎn),需要謹(jǐn)慎使用。
這個(gè)命令雖然不太常用,但是,當(dāng)出現(xiàn)大的問(wèn)題的時(shí)候,卻能發(fā)揮很大的作用,直接回退到一個(gè)以前的版本。
當(dāng)然,有時(shí)候當(dāng)我們錯(cuò)誤的回退的時(shí)候,又想回到最初的樣子怎么辦呢,難道代碼中的我們也不能回到18嗎?
當(dāng)然可以。我們可以使用git reflog,查看所有的head的記錄。
最后,我們?cè)谕ㄟ^(guò)git reset --hard 766f905f,重新回到回退之前的版本。
ok,以上就是工作中最最常用的git命令大全了。
最后,再附上我歷時(shí)三個(gè)月總結(jié)的?Java 面試 + Java 后端技術(shù)學(xué)習(xí)指南,這是本人這幾年及春招的總結(jié),目前,已經(jīng)拿到了大廠offer,拿去不謝!
下載方式
1.?首先掃描下方二維碼
2.?后臺(tái)回復(fù)「Java面試」即可獲取
總結(jié)
以上是生活随笔為你收集整理的我在实际工作中用的最多的 git 命令的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库密码配置项都不加密?心也太大了!
- 下一篇: 线上问题分析系列:数据库连接池内存泄漏问