解決:qemu_pipe_open_ns:62: Could not connect to the ‘pipe:qemud:network‘ service: Invalid argument 202
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對應的倉庫了