git倉庫
遠程服務(wù)器上的倉庫辙培,可以通過git clone
, 將倉庫克隆到本地企软。
本地倉庫是由3部分組成:
第一部分是
工作目錄
弊知。第二部分是
緩存區(qū)
, 用來臨時保存改動過的代碼诲泌,我們可以通過git add <filename>
來將有改動的文件保存到緩存區(qū)合瓢。第三部分是
HEAD
版本庫, 指向的是最后一次commit
的結(jié)果市俊。
git基本操作
添加與提交
我們可以使用git add .
或git add <filename>
將改動過的文件添加到緩存區(qū)杨凑。之后就可以進行實際的提交,通過git commit -m "備注"
將緩存區(qū)的文件提交到HEAD
上摆昧,但是這時候還沒有到遠程倉庫撩满。
分支
在實際開發(fā)過程中, 一個倉庫存在兩條主要的分支: master
和develop
。
master
是創(chuàng)建倉庫時默認的分支, 這個分支最穩(wěn)定, 在這個分支一般代表項目處于可發(fā)布的狀態(tài)绅你。develop
是從master
分支創(chuàng)建出來的分支伺帘,作為開發(fā)的分支。在實際開發(fā)中, 我們需要在develop分支上創(chuàng)建一個自己的分支忌锯,在自己的分支上完成開發(fā)后伪嫁,將自己分支下的代碼合并到develop
分支上。
分支操作基本命令:
創(chuàng)建分支:
git checkout -b xxx
切換分支:
git checkout develop
(切換到develop分支)刪除分支:
git branch -d xxx
查看分支:
git branch
更新合并
保證本地的工作目錄中拉取并合并遠程的改動汉规。
更新:要確保develop下具有遠程的最新狀態(tài)礼殊,就需要執(zhí)行:
git pull origin develop
,合并:
git merge <branch_name>
用來合并名為branch_name
分支到當(dāng)前的分支。
推送
通過commit
和git pull
操作针史,這個時候可以通過git push origin branch_name
命令提交代碼晶伦。
注意此時所在的分支,以及倉庫的內(nèi)容是否為最新的狀態(tài)啄枕。也就是保證在git push
之前有git pull
的動作婚陪。
沖突
在更新合并的過程中,git會嘗試自動合并, 但在出現(xiàn)沖突的
情況下, git不會進行自動合并频祝,這個時候需要手動去修改發(fā)生沖突的文件泌参,在執(zhí)行git add
等一系列操作。
常規(guī)從本地分支提交代碼到develop操作流程
首先創(chuàng)建自己的分支常空,在自己的分支下將開發(fā)好的代碼提交到本地倉庫沽一,也就是添加與提交的一個過程。
切換到
develop
分支, 執(zhí)行git pull origin develop
保證此時develop分支下的狀態(tài)為最新漓糙。在
develop
分支下铣缠,執(zhí)行git merge branch_name
將自己的分支合并到develop
。執(zhí)行
git push origin develop
從develop分支提交代碼。但本地自己分支下還不是最新狀態(tài), 所以需要切回自己的分支蝗蛙,將
develop
合并到自己的分支下蝇庭。 此時本地也為最新狀態(tài)。
git常見問題解決方案
-
連接遠程分支
錯誤信息.png
git 執(zhí)行g(shù)it push 和git pull的操作時候捡硅,經(jīng)诚冢可以看到上面的提示:那是什么問題呢?
根據(jù)它的錯誤提示我們知道壮韭,當(dāng)前的遠程分支并沒有和本地分支關(guān)聯(lián)北发,根據(jù)提示進行下一步操作,進行本地和遠程分支關(guān)聯(lián):
本地和遠程分支關(guān)聯(lián).png
git 命令簡寫設(shè)置
每次進行代碼git操作時泰涂,全寫太麻煩了鲫竞,最近學(xué)到了一招,設(shè)置git命令簡寫,以提交代碼git push
為例:
// 設(shè)置簡寫
git config --global alias.pl pull
git config --global alias.ps push
git config --global alias.mg merge
git config --global alias.cm commit
git config --global alias.co checkout
// 操作時
git pl
git ps
git mg
git cm -m "feat"
git co dev
這樣下次提交代碼時逼蒙,只需要輸入git ps
git pl
即可从绘,是不是超級方便??。