關(guān)于git的原理以及是干什么的仿贬,我此文就不寫了纽竣。網(wǎng)上很多專業(yè)的
我這里貼兩篇參考文章:
http://www.ruanyifeng.com/blog/2012/07/git.html
http://www.reibang.com/p/43302a72c399
這里用圖展示一下git的三個工作區(qū):
然后我這篇文章主要是根據(jù)自己平時開發(fā)使用git提交代碼的一些常用操作和遇到的一些問題。
一茧泪、基本命令
git init (根據(jù)不同系統(tǒng)不同命令進(jìn)入到目標(biāo)文件夾下創(chuàng)建版本庫)
或者
git clone (拷貝倉庫的代碼到本地)
注意: 拷貝代碼是從版本系統(tǒng)的master分支拷貝下來的蜓氨,此時本地自動創(chuàng)建一個master分支,第一步cd到項目文件夾下队伟,先創(chuàng)建一個自己要開發(fā)的分支穴吹, 然后git pull origin develop命令從develop分支拉取最新的代碼。
(這里的develop分支就是你們的開發(fā)分支嗜侮。至于分支名字各司可能不同港令。)
二、 提交代碼基本流程
git status 查看狀態(tài)
git add . (git add <file>添加文件)將工作區(qū)的改動添加到暫存區(qū)
(git rm <file> 刪除文件)
git commit -i "" 將暫存區(qū)提交到版本控制系統(tǒng)
git pull origin develop 從develop分支拉下最新代碼
git push origin xx/xx/xx
三锈颗、一些操作的命令
創(chuàng)建分支:
git branch <branchName>
切換分支:
git checkout <branchName> 切換到已存在的分支上
git checkout -b <branchName> 新建分支且切換到新建的該分支上
注意:切換分支的時候已經(jīng)要把當(dāng)前分支的變動commit
查看分支:
git branch -a 查看本地遠(yuǎn)程所有分支
git branch 查看本地所有分支
刪除分支:
git branch -D <branchName> 刪除本地分支
git push origin --delete <branchName> 刪除遠(yuǎn)程分支
四顷霹、誤操作或者覆蓋時想要恢復(fù)
使用git reset強制回滾 恢復(fù)commit方法
切換到初始的本地master分支,這個時候這個分支是最干凈的分支击吱。然后新建一個分支淋淀。
git checkout master
git branch <branchName>
git pull origin develop
git reflog
git reset --hard HEAD
然后就恢復(fù)到你當(dāng)時提交的那個HEAD
(HEAD就是下圖中黃色的7為數(shù)字字母字符串)
五、工作中出現(xiàn)的問題
1覆醇、合代碼的時候命令窗口出現(xiàn)編輯窗口
這個是git上merge pr之后的對比信息
下面執(zhí)行g(shù)it pull origin develop命令之后出現(xiàn)編輯窗口:
可直接按ESC鍵后再輸入“:wq”,后按回車鍵即可
然后會看到紅綠色的加減號朵纷,對比pr上的差異是相同的炭臭。
- 出現(xiàn)沖突,命令窗口中無法繼續(xù)輸入命令
一般我們按上面提交代碼流程那步驟走到git pull origin develop這步時袍辞,如果出現(xiàn)沖突會出現(xiàn)很長一段提示命令鞋仍,大概意思就是哪個文件沖突了,你去解決一下革屠,不解決就git skip凿试。要不就是git continue
解決辦法就是 :
不要著急,也不要害怕(我們不是還有g(shù)it reset嘛 )
認(rèn)真的去看那些提示命令似芝,看看是哪些文件出現(xiàn)沖突了那婉。去那些文件中,沖突的地方都有標(biāo)識党瓮。
有的是>>>head <<<end详炬,類似這樣的。然后對比代碼寞奸,把沖突解決掉呛谜。
依次解決掉每個有沖突的文件,然后回到命令窗口枪萄,重新執(zhí)行
git add
git commit
git pull
git push
然后提pr隐岛,看看差異。
當(dāng)然: 這塊還有個問題瓷翻,就是一次性提交代碼太多聚凹,出現(xiàn)沖突了,沖突的地方多齐帚,自己都忘記自己這塊當(dāng)時是怎么寫的妒牙。該保留哪些刪除哪些?
所以对妄,提交代碼要勤快湘今,修改一些小地方就提交上去,一個小bug剪菱,小需求 小邏輯完成后就提pr摩瞎。還有盡量分feature,分bug創(chuàng)建分支孝常,就是建分支刪分支再建新分支愉豺。總之問題細(xì)化茫因。這樣沖突就出現(xiàn)少了蚪拦。(這個過程一開始感覺很煩很難,但是堅持下來你會感覺真不一樣)
好了, 就這些了驰贷。 目前想到的就這些盛嘿,可能還不是很全,不過這些應(yīng)該足夠應(yīng)付日常工作了括袒〈握祝可能還存在一些其他我沒遇到的問題有別的解決辦法,以后用到以及遇到再補~~