一、安裝git客戶端
二、git的簡介
1.git是目前最先進的分布式版本控制系統(tǒng)??梢杂行?、高速的處理從很小到非常大的項目版本管理。
gitlab(git服務(wù)端)是一個基于git的遠程文件托管平臺,本身可以完全做到版本控制,但其所有的內(nèi)容以及版本記錄只能保存在本機,如果想要將文件內(nèi)容以及版本記錄同事保存在遠程,則需要結(jié)合git客戶端來使用。
2.git的三個區(qū)
git有三個工作區(qū),分別是工作區(qū),暫存區(qū)和版本區(qū)

工作區(qū)(working Directory):在本地電腦中能看到的環(huán)境。
暫存區(qū)(stage):git的版本庫里存了很多東西,其中最重要的就是stage的暫存區(qū),還有g(shù)it為我們自動穿件的第一個分支master,以及指向master的一個指針叫HEAD。
版本庫(Repository):工作區(qū)有個隱藏目錄.git,這個不算工作區(qū),而是git的版本庫。
要完成一次完整的提交,需要git add->git commit才可以。
注意:遠程分支和git的三個區(qū)不屬于同一概念,注意區(qū)分
3.常見命令整理
? ? 1)git clone xxx:將遠程git分支文件下載到本地
? ? 2)git checkout dev:切換到dev分支
? ? 3)git branch:查看當前的git分支狀態(tài)
? ? 4)git add . :將文件夾下的文件夾及文件添加到git的暫存區(qū)
? ? 5)git commit -m "備注信息在這填寫":將本地的緩存及未提交文件提交到版本庫
? ? 6)git push:將版本庫的內(nèi)容提交到遠程分支
? ? 7)git reset --hard HEAD^:回退到版本庫的上一個版本
? ? 8)git reset --hard 版本號:回退到版本庫的指定版本號
? ? 9)git status:可以顯示分支沖突時沖突在哪里
? ? 10)git fetch:將遠程分支拉取到版本庫
? ? ? ? 說明:git pull和git fetch的區(qū)別

? ? 11)git merge dev:合并dev的內(nèi)容到本地來,如果是忽略分支,則是合并當前版本的內(nèi)容到本地來
? ? 12)git diff:查看開發(fā)庫的代碼沖突文件(查看文件后,需要手動合并<<<<<< ============>>>>>>>>>>中的代碼內(nèi)容)
? ? 13)git log:查看commit日志()
? ? ????說明:查看git log中,對應(yīng)commit的哈希值,結(jié)合git reset --hard commit_id,可以回退到對應(yīng)的commit的內(nèi)容
? ? 14)git reset --mixed:不帶任何參數(shù)的git reset,即會回退到某個版本,只保留源碼,回退commit和index(暫存庫)信息
? ? 15)git reset --soft:回退到某個版本,只回退了commit的信息,不會恢復(fù)到index file一級,如果還要提交,直接commit即可
? ? 16)git reset --hard:徹底回退到上一個版本(后加版本號可以回退到固定版本),本地的源碼也會變?yōu)樯弦粋€版本內(nèi)容
三、建議
? ? 1.在修改大型文件(如rp(原型文件)、sql文件等大文件時,如果拉取發(fā)生沖突時,建議先在本地保存一個版本,然后從視圖層面修改自己本地的內(nèi)容,再合并提交,注意不要整個文件替換,那樣別人改的內(nèi)容就沒有了)
? ? 2)在代碼開發(fā)過程中,盡量不做相互交叉的業(yè)務(wù),防止出現(xiàn)大面積的merge現(xiàn)象
? ? 3)及時提交本地代碼,如果本地代碼不及時提交,再提交代碼時可能會出現(xiàn)大量的代碼合并現(xiàn)象,并且代碼不及時提交,一次性提交,容易造成本地的配置文件或者無關(guān)文件提交到服務(wù)器,導(dǎo)致服務(wù)器報錯的現(xiàn)象發(fā)生
? ? 4)代碼提交時,不要忘記push到遠程分支,只保存在本地別人拉取不到,容易造成代碼沖突和代碼覆蓋的問題
? ? 5)當代碼沖突后,一定要合并別人的代碼
? ? 6)在提交代碼前,一定要先拉取,防止出現(xiàn)強制還原別人代碼的情況