1. 程式人生 > 其它 >LeetCode題解:尋找比目標字母大的最小字母

LeetCode題解:尋找比目標字母大的最小字母

Git是一個開源的分散式版本控制系統,可以有效、高速地處理從很小到非常大的專案版本管理。

一、版本控制系統的分類:

1、本地版本控制

記錄檔案每次的更新,可以對每個版本做一個快照,或是記錄補丁檔案,適合個人用,如RCS。

2、集中版本控制

所有的版本資料都儲存在伺服器上,協同開發者從伺服器上同步更新或上傳自己的修改

所有的版本資料都存在伺服器上,使用者的本地只有自己以前所同步的版本,如果不連網的話,使用者就看不到歷史版本,也無法切換版本驗證問題,或在不同分支工作。而且,所有資料都儲存在單一的伺服器上,有很大的風險這個伺服器會損壞,這樣就會丟失所有的資料,當然可以定期備份。代表產品:SVN、CVS、VSS

3、分散式版本控制

每個人都擁有全部的程式碼

所有版本資訊倉庫全部同步到本地的每個使用者,這樣就可以在本地檢視所有版本歷史,可以離線在本地提交,只需在連網時push到相應的伺服器或其他使用者那裡。由於每個使用者那裡儲存的都是所有的版本資料,只要有一個使用者的裝置沒有問題就可以恢復所有的資料,但這增加了本地儲存空間的佔用。

不會因為伺服器損壞或者網路問題,造成不能工作的情況。代表產品:Git

二、Git的工作原理

  • Workspace:工作區,專案程式碼存放的地方

  • Index / Stage:暫存區,用於臨時存放你的改動,事實上它只是一個檔案,儲存即將提交到檔案列表資訊

  • Repository:倉庫區(或本地倉庫),就是安全存放資料的位置,這裡面有你提交到所有版本的資料。其中HEAD指向最新放入倉庫的版本

  • Remote:遠端倉庫,託管程式碼的伺服器,可以簡單的認為是你專案組中的一臺電腦用於遠端資料交換

三、建立本地倉庫

方式一:本地初始化倉庫

git init

方式二:克隆遠端倉庫(常用)

git clone [url]

遠端倉庫建立,登入GitHub或gitee,newrepository

輸入專案名,選擇對應選項建立即可

建立完成後在這裡獲取url

四、檔案的四種狀態

版本控制就是對檔案的版本控制,要對檔案進行修改、提交等操作

  • Untracked: 未跟蹤, 此檔案在資料夾中, 但並沒有加入到git庫, 不參與版本控制. 通過git add 狀態變為Staged.

  • Unmodify: 檔案已經入庫, 未修改, 即版本庫中的檔案快照內容與資料夾中完全一致. 這種型別的檔案有兩種去處, 如果它被修改, 而變為Modified. 如果使用git rm移出版本庫, 則成為Untracked檔案

  • Modified: 檔案已修改, 僅僅是修改, 並沒有進行其他的操作. 這個檔案也有兩個去處, 通過git add可進入暫存staged狀態, 使用git checkout 則丟棄修改過, 返回到unmodify狀態, 這個git checkout即從庫中取出檔案, 覆蓋當前修改 !

  • Staged: 暫存狀態. 執行git commit則將修改同步到庫中, 這時庫中的檔案和本地檔案又變為一致, 檔案為Unmodify狀態. 執行git reset HEAD filename取消暫存, 檔案狀態為Modified

用idea開啟git同名專案,可以看到目錄有檔案變成紅色,代表檔案處於Untracked狀態,執行命令

git add .

此時檔案變成綠色,表示成為暫存狀態,執行命令

git commit -m [message]

提交至本地倉庫

message表示提交附帶的資訊

最後執行

git push

同步到遠端倉庫

執行成功後我們的專案就被提交到GitHub或者gitee對應的倉庫了