Git 與Svn 都是作為我們代碼管理的一個基本的工具扔茅。
我在這里僅僅是做一個自己學(xué)習(xí)的筆記記錄奕翔。
1傅联、Git與Svn的區(qū)別
Git是可以離線管理的工具先改,Svn則是只能在線上進(jìn)行代碼。Git相當(dāng)于svn的不同點主要是體現(xiàn)在兩者的設(shè)計理念上的區(qū)別把蒸走。
Git 的離線管理機(jī)制;
Git 的分支管理機(jī)制仇奶;
由于Git 在本地建立了一個和遠(yuǎn)程服務(wù)上一模一樣的Git代管管理庫(本地緩存區(qū)),我暫時稱之為Local_Git载碌。在修改了代碼(內(nèi)容之后)猜嘱,我們可以對應(yīng)的命令,查看到對應(yīng)的修改狀態(tài)嫁艇,然后對應(yīng)的進(jìn)行提交操作朗伶,但是這次首先提交到本地的緩存區(qū),通過push 命令在最后推送到遠(yuǎn)程服務(wù)步咪。當(dāng)網(wǎng)絡(luò)失效论皆,我們依賴本地的緩存,同樣是可以進(jìn)行對代碼進(jìn)行管理猾漫。等網(wǎng)絡(luò)聯(lián)通后点晴,我們在提交到遠(yuǎn)程服務(wù)上,相對于Svn的在線管理悯周,Git的離線管理還是相對有有效的粒督。
由于Git是實現(xiàn)了本地和遠(yuǎn)程服務(wù)分離獨立管理的機(jī)制,所以在分支管理和離線管理都是十分簡單有效禽翼。在Git庫里頭有N個分支屠橄,默認(rèn)則是master分支。我們自己可以用命令branch 闰挡,新建新的分支锐墙。新建的分支是首先在本地的緩存區(qū)中出現(xiàn),我們最后也是通過命令push 命令把新建的分支推送到服務(wù)上长酗。
2溪北、命令過程
令 git status 可以直接查看到當(dāng)前分支下的代碼(內(nèi)容)狀態(tài),是否發(fā)生了改變夺脾。
命令 git commit -a 之拨,則是把修改的代碼同步到Local_Git下對應(yīng)的分支中(所有內(nèi)容)。
命令 git push origin 咧叭,則是把本地緩存區(qū)Local_Git的內(nèi)容提交到遠(yuǎn)程服務(wù)上的Git庫對應(yīng)的分支敦锌。
命令 git branch newBranchName(新增分知名),新增一個分支佳簸。
由于Git 離線的機(jī)制乙墙,我們新增的分支僅僅是在本地緩存Local_Git中存在,并沒有提交到遠(yuǎn)程服務(wù)上生均。
命令 git checkout -b newBranchName,則由當(dāng)前的分支切換到新建分支上听想。
命令 git push origin newBranchName,則是把本地新建分支提交到遠(yuǎn)程服務(wù)上。
命令 git branch -a 可以查看所有的分支 马胧,分支展示規(guī)則:默認(rèn)是按照分支建立時間汉买,第一部分是展示本地分支,第二部分(remotes/origin/)開頭的是遠(yuǎn)程分支佩脊。(*)星號標(biāo)記的則是當(dāng)前選中的分支蛙粘。
在分支切換的過程垫卤,則是Git本地緩存的指針指向切換的過程,這個是相對于Svn來說在性能和管理上的一個提升出牧。
切換分支后穴肘,本地指向的代碼(內(nèi)容)會立刻切換為該分支的解決方案。