Git 與Svn 都是作為我們代碼管理的一個基本的工具。
我在這里僅僅是做一個自己學(xué)習(xí)的筆記記錄。
1、Git與Svn的區(qū)別
Git是可以離線管理的工具,Svn則是只能在線上進行代碼。Git相當(dāng)于svn的不同點主要是體現(xiàn)在兩者的設(shè)計理念上的區(qū)別把。
Git 的離線管理機制;
Git 的分支管理機制;
由于Git 在本地建立了一個和遠程服務(wù)上一模一樣的Git代管管理庫(本地緩存區(qū)),我暫時稱之為Local_Git。在修改了代碼(內(nèi)容之后),我們可以對應(yīng)的命令,查看到對應(yīng)的修改狀態(tài),然后對應(yīng)的進行提交操作,但是這次首先提交到本地的緩存區(qū),通過push 命令在最后推送到遠程服務(wù)。當(dāng)網(wǎng)絡(luò)失效,我們依賴本地的緩存,同樣是可以進行對代碼進行管理。等網(wǎng)絡(luò)聯(lián)通后,我們在提交到遠程服務(wù)上,相對于Svn的在線管理,Git的離線管理還是相對有有效的。
由于Git是實現(xiàn)了本地和遠程服務(wù)分離獨立管理的機制,所以在分支管理和離線管理都是十分簡單有效。在Git庫里頭有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)容提交到遠程服務(wù)上的Git庫對應(yīng)的分支。
命令 git branch newBranchName(新增分知名),新增一個分支。
由于Git 離線的機制,我們新增的分支僅僅是在本地緩存Local_Git中存在,并沒有提交到遠程服務(wù)上。
命令 git checkout -b newBranchName,則由當(dāng)前的分支切換到新建分支上。
命令 git push origin newBranchName,則是把本地新建分支提交到遠程服務(wù)上。
命令 git branch -a 可以查看所有的分支 ,分支展示規(guī)則:默認是按照分支建立時間,第一部分是展示本地分支,第二部分(remotes/origin/)開頭的是遠程分支。(*)星號標(biāo)記的則是當(dāng)前選中的分支。
在分支切換的過程,則是Git本地緩存的指針指向切換的過程,這個是相對于Svn來說在性能和管理上的一個提升。
切換分支后,本地指向的代碼(內(nèi)容)會立刻切換為該分支的解決方案。