Git
1、Git 管理代碼陨瘩,保證代碼版本迭代連續(xù)性,即:向A分支merge或者push代碼時(shí)逊脯,A分支代碼必須是當(dāng)前代碼的上一個(gè)版本优质,不然會(huì)產(chǎn)生沖突。(換句話說(shuō):Git確保當(dāng)前的本地的代碼為最新)
2军洼、Git有修改就有提交巩螃,就有新的代碼版本,git管理維護(hù)的是修改匕争。
3避乏、Git分支存儲(chǔ)的是代碼副本。
4甘桑、push :實(shí)際上就是將本地分支合并到遠(yuǎn)端庫(kù)分支拍皮;
pull:實(shí)際就是將遠(yuǎn)端分支合并到本地分支。
一跑杭、向git庫(kù)添加修改
git add [path] #會(huì)把對(duì)應(yīng)目錄或文件铆帽,添加到stage狀態(tài)
git add . #會(huì)把當(dāng)前所有的untrack files和changed but not updated添加到stage狀態(tài)
實(shí)際上是為修改內(nèi)容添加index索引。
1德谅、向版本庫(kù)提交修改
git commit –m “XXXX” #提交修改,添加注釋
注:git 提示: 未有add紅色字體爹橱,未有commit綠色字體,已提交則worktree是干凈的
2窄做、查看當(dāng)前代碼庫(kù)的狀態(tài)
git status
3愧驱、查看版本信息 >>>>>>實(shí)際是查看修改提交信息
git log
git log --graph #以圖形化(節(jié)點(diǎn))展示當(dāng)前git庫(kù)的提交信息。
4椭盏、查看指定版本信息
git show sdjf974654dd…. #(show后面為每次提交系統(tǒng)自動(dòng)生成的一串哈希值)
git show sdji97 #一般只使用版本號(hào)的前幾個(gè)字符即可
5组砚、撤銷修改 git reset
(1)撤銷整體修改
git reset --hard #回到原來(lái)編輯的地方,改動(dòng)會(huì)丟失。(同樣適用于團(tuán)隊(duì)對(duì)于其他人
的修改恢復(fù))
git reset --hard sdv143kvf…... #可回到指定的版本#(hard后面為每次提交系統(tǒng)自
動(dòng)生成的一串哈希值)
git reset [path] 會(huì)改變path指定的文件或目錄的stage狀態(tài)庸汗,到非stage狀態(tài)惫确。
git reset 會(huì)將所有stage的文件狀態(tài),都改變成非stage狀態(tài)蚯舱。
(2)撤銷某次修改
回退1個(gè)change的寫法就是git reset HEAD^改化,
2個(gè)為HEAD^^,
3個(gè)為HEAD~3枉昏,以此類推陈肛。
6、向遠(yuǎn)端庫(kù)推送修改(提交修改)
git push origin 分支名
7兄裂、暫存修改
git stash可以把當(dāng)前的改動(dòng)(stage和unstage句旱,但不包括untrack的文件)暫存阳藻。
然后通過(guò)git stash list查看。
并通過(guò)git stash apply重新取出來(lái)谈撒。但apply之前要保證worktree是干凈的腥泥。
二、Git團(tuán)隊(duì)開(kāi)發(fā)常用操作指令
1啃匿、獲取遠(yuǎn)端庫(kù)項(xiàng)目
git clone/pull
2蛔外、團(tuán)隊(duì)開(kāi)發(fā)的基本流程(多分支合并一個(gè)分支)
git add . #添加改動(dòng)的文件
git commit #(提交至本地)
git pull --rebase #(將服務(wù)器項(xiàng)目與本地項(xiàng)目合并)
git push #(將本地項(xiàng)目上傳至遠(yuǎn)端庫(kù))
(在提交前要git pull --rebase 一下溯乒,確保當(dāng)前的本地的代碼為最新夹厌。)
三、Git 分支管理
1裆悄、建立分支
git branch AAA #建立分支AAA
2矛纹、分支切換
git checkout AAA #從當(dāng)前分支切換到AAA分支 (若AAA分支不存在,則自動(dòng)新建)
3光稼、將分支與支master合并
git checkout master #(首先切換回主支)
git merge AAA #(將分支AAA與主支合并)
注:git merge:默認(rèn)情況下或南,Git執(zhí)行"快進(jìn)式合并"(fast-farward merge),會(huì)直接將Master分支指向Develop分支钟哥。
使用--no-ff參數(shù)后迎献,會(huì)執(zhí)行正常合并,在Master分支上生成一個(gè)新節(jié)點(diǎn)腻贰。為了保證版本演進(jìn)的清晰(保持提交曲線為直線)吁恍,建議采用這種方法。
4播演、當(dāng)前分支查看
git branch #默認(rèn)有master(也稱為主支)
git branch -r #查看遠(yuǎn)端庫(kù)分支
git branch –a #查看當(dāng)前所有分支(包括本地分支和遠(yuǎn)端庫(kù)分支)
5冀瓦、刪除分支
git branch –d AAA #刪除分支AAA
6、切下遠(yuǎn)端庫(kù)A分支到本地庫(kù)A分支
git checkout -b A origin/A (若本地A分支不存在写烤,則自動(dòng)新建)
注:上面只是一些基本的操作命令翼闽,更多的命令可通過(guò)幫助文檔查詢。
幫助文檔的使用:
man git-<需查詢的指令> #(git后面有“-”)
如commit的查詢?yōu)? man git-commit
四洲炊、本地代碼上傳Github
1感局、Gtthub上建立遠(yuǎn)端倉(cāng)庫(kù),復(fù)制下載鏈接暂衡。
2询微、本地指定目錄下,git clone 粘貼遠(yuǎn)端倉(cāng)庫(kù)下載鏈接拉取遠(yuǎn)端倉(cāng)庫(kù)代碼狂巢。
3撑毛、復(fù)制本地需要提交的代碼到遠(yuǎn)端倉(cāng)庫(kù)目錄。
3唧领、Git add .藻雌、commit雌续、push 提交本地代碼至Github遠(yuǎn)端倉(cāng)庫(kù)。