git checkout -b bug_fix -t remotes/origin/bug_fix
checkout -b
表示新建本地分支,bug_fix
為本地分支名,你也可以起別的名字。-t
表示追蹤遠(yuǎn)程分支(track),remotes/origin/bug_fix
為遠(yuǎn)程分支名,查看檢出結(jié)果:
輸入 git branch
查看當(dāng)前所在的本地分支:
輸入 git status
查看當(dāng)前分支狀態(tài):
提示你目前修改是最新的,沒有任何修改可以提交。
提交代碼
不良習(xí)慣
很多開發(fā)人員,喜歡在一個(gè)本地分支上,連續(xù)提交代碼。這是一個(gè)很不好的習(xí)慣,尤其是在多人協(xié)作的情況下。這會導(dǎo)致每筆提交之間存在依賴關(guān)系,即使每筆修改之間毫無瓜葛。進(jìn)而可能導(dǎo)致 merge
沖突、cherry-pick
合入冗余代碼。而且,如果你突然發(fā)現(xiàn),上上一筆提交有問題的時(shí)候,我覺得你可能有種想 shi 的感覺。
正確姿勢
保留一個(gè)本地分支,專門用于同步代碼。
比如,我們現(xiàn)在需要在 master
分支上做一個(gè)需求,首先輸入 git status
查看本地 master
分支的狀態(tài):
提示本地有修改文件,沒有提交。咋整呢?有兩種處理方法:
- 啥也不管,直接輸入
git pull
進(jìn)行同步,有沖突會自動合并,合并不了再手動解決。-> 不推薦,可能會在本地產(chǎn)生一條 merge 記錄 - 先將本地修改
stash save
,再使用git pull --rebase
進(jìn)行同步,最后將暫存的修改stash pop
,有沖突會自動合并,合并不了再手動解決。-> 推薦,自動變基,不會在本地產(chǎn)生 merge 記錄
1. 暫存代碼
git stash save [-u] ‘update readme.md’
[-u]
表示參數(shù)可選,加 -u
會將本地新增文件也暫存,不加則僅暫存本地修改部分。'update readme.md'
為描述,下面列出 git stash
支持的所有操作:
-
git stash list
顯示所有暫存記錄 -
git stash show stash@{0}
查看指定的暫存記錄 -
git stash pop stash@{0}
彈出指定的暫存記錄 -
git stash drop stash@{0}
刪除指定的暫存記錄 -
git stash clear
清空暫存記錄
2. 同步代碼
git pull --rebase
同步結(jié)果:
提示已經(jīng)是最新的。如果本地代碼不是最新的,應(yīng)當(dāng)類似于下圖:
3. 彈出暫存代碼
git stash pop [stash@{0}]
[stash@{0}]
表示可選,不加默認(rèn)彈出棧頂元素,也可以指定彈出哪一個(gè)暫存記錄。彈出結(jié)果如下:
提示有沖突。莫要驚慌,有沖突解決就是了,畢竟咱們干的都是“小項(xiàng)目”,除非文件換行符變了,否則不會沖突太多。像 AOSP
、Mokee
那種大型項(xiàng)目,發(fā)生沖突才是坑爹。比如國內(nèi)的手機(jī)廠商,每次大版本升級時(shí)(比如從 Android 8.0 升到 Android 9.0),都需要花幾個(gè)月的時(shí)間才能使版本穩(wěn)定,這也是為什么國產(chǎn)手機(jī)安卓版本總是落后于 Google 的原因。扯遠(yuǎn)了,還是先 git status
看一下工作區(qū)狀態(tài):
原來是 README.md
文件修改沖突了,而且 Git 還貼心地提示你:
- 使用
git reset HEAD <file>
來丟棄本地修改 - 使用
git add <file>...
標(biāo)記沖突解決(省略號表示后面可接多個(gè)文件,以空格分隔)
我們先使用 git diff <file>
看看哪里沖突了:
git 使用:
<<<<<<< Updated upstream
=======
Stashed changes
標(biāo)記沖突狀態(tài),=======
上面的是遠(yuǎn)程倉庫上別人的修改,下面的是我們的本地修改。嗯,這個(gè)沖突是我人為制作的,所以比較簡單。在 IDE 中手動解決該沖突后,使用 git add README.md
命令標(biāo)記沖突已解決:
README.md
咋變原諒色了呢?因?yàn)槲覀儎偛庞昧?git add
命令,將其添加到了暫存區(qū),所以上面顯示的是 Changes to be committed
,也就是待提交。提交啥啊,剛解決完沖突,需求還沒做呢!所以,我們使用 git reset <file>...
命令,將其從暫存區(qū)撤出:
<file>...
表示可選,不加即撤出所有,加了即撤出指定的文件。Linux 幫助手冊中很多使用 <arg>
或者 [arg]
表示參數(shù)可選,<>
和 []
是不需要輸入的,這個(gè)已經(jīng)成為開發(fā)人員的習(xí)慣用法。
4. 新建本地分支
很多人這個(gè)時(shí)候,就直接在本地 master
分支上瘋狂輸出需求代碼了。NO!我們應(yīng)該針對不同的開發(fā)內(nèi)容,新建不同的本地分支。比如 feature_shopping
,bugfix_tombstone
等等,假設(shè)我們現(xiàn)在需要實(shí)現(xiàn)一個(gè)購物功能,我們應(yīng)該使用 git checkout -b feature_shopping
新建一個(gè)本地分支來實(shí)現(xiàn)這個(gè)需求:
5. 提交代碼
連續(xù)通宵5天后,我們的需求終于做完了,可以提交代碼了:
git commit -m "update README.md"
表示將修改提交到本地倉庫,此時(shí)還沒有推送到遠(yuǎn)程倉庫。-m
后面的是修改描述,這是一種簡便寫法。而大公司都會對提交的描述有格式要求,所以需要先配置 commit 模板:
git config --global commit.template ~/.gitmsg
編輯該模板:
輸入 git commit
:
模板已經(jīng)生效了,輸入修改描述即可。我這里配置的 Git 編輯器是 vim,你也可以配置成別的:
git config --global core.editor notepad
這樣,就可以用記事本來編寫修改描述了。
6. 追加提交
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)初中級Android工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則近萬的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Android移動開發(fā)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上Android開發(fā)知識點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且會持續(xù)更新!
如果你覺得這些內(nèi)容對你有幫助,可以掃碼獲取?。。▊渥ⅲ篈ndroid)

最后
簡歷首選內(nèi)推方式,速度快,效率高?。∪缓罂梢栽诶^,boss,脈脈,大街上看看。簡歷上寫道熟悉什么技術(shù)就一定要去熟悉它,不然被問到不會很尷尬!做過什么項(xiàng)目,即使項(xiàng)目體量不大,但也一定要熟悉實(shí)現(xiàn)原理!不是你負(fù)責(zé)的部分,也可以看看同事是怎么實(shí)現(xiàn)的,換你來做你會怎么做?做過什么,會什么是廣度問題,取決于項(xiàng)目內(nèi)容。但做過什么,達(dá)到怎樣一個(gè)境界,這是深度問題,和個(gè)人學(xué)習(xí)能力和解決問題的態(tài)度有關(guān)了。大公司看深度,小公司看廣度。大公司面試你會的,小公司面試他們用到的你會不會,也就是崗位匹配度。
選定你想去的幾家公司后,先去一些小的公司練練,學(xué)習(xí)下面試技巧,總結(jié)下,也算是熟悉下面試氛圍,平時(shí)和同事或者產(chǎn)品PK時(shí)可以講得頭頭是道,思路清晰至極,到了現(xiàn)場真的不一樣,怎么描述你所做的一切,這絕對是個(gè)學(xué)術(shù)性問題!
面試過程一定要有禮貌!即使你覺得面試官不尊重你,經(jīng)常打斷你的講解,或者你覺得他不如你,問的問題缺乏專業(yè)水平,你也一定要尊重他,誰叫現(xiàn)在是他選擇你,等你拿到offer后就是你選擇他了。
金九銀十面試季,跳槽季,整理面試題已經(jīng)成了我多年的習(xí)慣!在這里我和身邊一些朋友特意整理了一份快速進(jìn)階為Android高級工程師的系統(tǒng)且全面的學(xué)習(xí)資料。涵蓋了Android初級——Android高級架構(gòu)師進(jìn)階必備的一些學(xué)習(xí)技能。
附上:我們之前因?yàn)榍镎惺占亩滓欢€互聯(lián)網(wǎng)公司Android面試真題(含BAT、小米、華為、美團(tuán)、滴滴)和我自己整理Android復(fù)習(xí)筆記(包含Android基礎(chǔ)知識點(diǎn)、Android擴(kuò)展知識點(diǎn)、Android源碼解析、設(shè)計(jì)模式匯總、Gradle知識點(diǎn)、常見算法題匯總。)
《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲??!文章來源地址http://www.zghlxwxcb.cn/news/detail-854082.html
、Gradle知識點(diǎn)、常見算法題匯總。)
[外鏈圖片轉(zhuǎn)存中…(img-K3Ufa8ge-1712763706781)]文章來源:http://www.zghlxwxcb.cn/news/detail-854082.html
《互聯(lián)網(wǎng)大廠面試真題解析、進(jìn)階開發(fā)核心學(xué)習(xí)筆記、全套講解視頻、實(shí)戰(zhàn)項(xiàng)目源碼講義》點(diǎn)擊傳送門即可獲?。?/strong>
到了這里,關(guān)于Git Bash 提交代碼的正確姿勢(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!