基礎(chǔ)知識
Git版本控制的功能為保存不同版本的代碼房轿,保存代碼的地方叫做倉庫。
每個倉庫中有多個分支所森,每個分支上又有很多節(jié)點囱持,每個節(jié)點代表一個版本,不同的分支可以進行合并焕济,實現(xiàn)多個功能的同時開發(fā)纷妆。
一個完整的Git版本控制系統(tǒng)有兩個倉庫,一個倉庫在服務(wù)器上晴弃,另一個倉庫在本地掩幢。服務(wù)器倉庫主要作用為團隊協(xié)作和多端同步,可以將本地的倉庫的某個分支上傳至服務(wù)器某個分支上鞠;本地倉庫的作用主要是提交自己的代碼至本地倉庫某個分支和下載服務(wù)器倉庫的某個分支际邻。
平時編寫代碼的某個版本必然是倉庫的某個分支的某個節(jié)點,該處稱為工作空間芍阎。
分支的本質(zhì)為標(biāo)簽世曾,分支的標(biāo)簽只能在分支的頭部,可以想象谴咸,分支是一條公交車路線轮听,節(jié)點是分支的站點骗露,而路線的名稱則放在路線頭部。head標(biāo)簽可以任意移動血巍,代表的使當(dāng)前工作空間的節(jié)點萧锉。
Pycharm中文件顏色和Git的關(guān)系
棕色為未加入本地倉庫的文件
綠色為已添加但從未提交過的文件
藍(lán)色為提交過但未提交最新修改的文件
黑色為和當(dāng)前節(jié)點相同的文件
Pycharm中Git命令的功能
(1) commit
提交更新的文件至本地當(dāng)前工作空間所在的分支。在head分支下無法commit述寡。
當(dāng)head標(biāo)簽與分支標(biāo)簽在同一處是驹暑,則可以進行commit。
(2) add
將某個文件加入工作空間辨赐,在下次commit時优俘,會將該文件提交進本地分支。
(3) annotate
顯示注釋掀序,注釋內(nèi)容為提交者帆焕。
(4) show current revision
彈出氣泡提示當(dāng)前文件的版本、提交者不恭、提交時間叶雹。
(5) compare with the same repository version
工作空間內(nèi)的代碼和當(dāng)前分支的當(dāng)前節(jié)點對比
(6) compare with
工作空間內(nèi)的代碼和當(dāng)前分支之前的節(jié)點對比
(7) compare with branch
工作空間內(nèi)的代碼和其他分支最新節(jié)點對比
(8) show history
顯示當(dāng)前分支的該節(jié)點及之前的節(jié)點內(nèi)容
(9) rollback
翻譯為回滾。把工作空間未提交的修改刪除并將狀態(tài)返回至當(dāng)前節(jié)點换吧。
(10) checkout
右鍵節(jié)點使會出現(xiàn)該選項折晦,選擇不同的分支,可以跳轉(zhuǎn)到其他分支的該節(jié)點沾瓦,如果此時工作空間相對于當(dāng)前節(jié)點有改變满着,且未提交,則會出現(xiàn)提示贯莺,可以舍棄改變或者放棄checkout风喇。
(11) reset current branch to here
重置當(dāng)前分支到該節(jié)點。
如果當(dāng)前節(jié)點不是該分支的最新節(jié)點缕探,則該操作與checkout相同魂莫。
如果當(dāng)前節(jié)點為該分支的最新節(jié)點,且該節(jié)點與當(dāng)前節(jié)點為同一分支爹耗,則該節(jié)點后的節(jié)點會刪除耙考。如果該節(jié)點與當(dāng)前節(jié)點為不同分支,則其在當(dāng)前分支之后的節(jié)點會刪除潭兽,且當(dāng)前分支延伸到該節(jié)點倦始。
如果選的hard模式,則會舍棄工作空間的修改讼溺。
(12) revert commit
工作空間的狀態(tài)回到當(dāng)前分支的上個節(jié)點楣号,并彈出commit窗口。
(13) undo commit
為選擇當(dāng)前分支上一個節(jié)點的reset current branch to here操作。
(14) new branch
在當(dāng)前節(jié)點位置創(chuàng)建分支
(15) merge changes
當(dāng)前分支合并另一個分支炫狱,合并后的分支名為當(dāng)前分支藻懒。合并過程中有沖突的地方需要進行手工進行合并。
在無分支的地方進行合并其他分支的操作视译,會產(chǎn)生分支的路線嬉荆。
(16) pull
將當(dāng)前分支合并某個服務(wù)器倉庫的某個分支。
(17) push
將當(dāng)前分支提交至服務(wù)器倉庫酷含,如果存在沖突則會提示沖突鄙早,需要解決沖突。
(18) stash changes
如果本地有文件改動未提交椅亚、且該文件和服務(wù)器最新版本有沖突限番,pull更新會提示錯誤,無法更新:要么先commit自己的改動然后再通過pull拉取代碼呀舔,stash的好處是可以先將你的改動暫存到本地倉庫中弥虐,隨時可以取出來再用,但是不用擔(dān)心下次push到服務(wù)器時媚赖,把不想提交的改動也push到服務(wù)器上霜瘪,因為stash changes的內(nèi)容不參與commit和push。
將當(dāng)前節(jié)點未提交改動保存到另一處空間惧磺,不參與commit颖对,實現(xiàn)保存非新版本。
(19) unstash changes
與stash changes的功能相反磨隘,取出暫存的代碼改動到當(dāng)前節(jié)點缤底。
(20) reset HEAD
重置當(dāng)前工作空間為HEAD節(jié)點版本。
(21) remotes
設(shè)置服務(wù)器倉庫的地址
(22) clone
從服務(wù)器倉庫地址克隆倉庫
(23) rebase
以后補充