1、起步
1.1、關於版本控制
1.2、git簡史
1.3、什麼是git?
1.4、命令列
1.5、安裝git
1.6、初次執行git前的配置
1.7、獲取幫助
2、git基礎
2.1獲取 git 倉庫
2.2記錄每次更新到倉庫
2.3檢視提交歷史
q:什麼是「版本控制」?
a:版本控制是記錄檔案內容變化,以便將來查閱特定版本修訂情況的系統,常用於源**的檔案。
q:我為什麼要關心它呢?
a:專案做了一段時間,突然心血來潮,決定使用git來進行版本控制,同時也是為了學習git的使用。
特點:
(1)直接記錄快照,而非差異比較
(2)近乎所有操作都是本地執行
(3)保證完整性
(4)一般只新增資料
三種狀態:
已提交(committed):已修改表示修改了檔案,但還沒儲存到資料庫中。
已修改(modified):已暫存表示對乙個已修改檔案的當前版本做了標記,使之包含在下次提交的快照中。
已暫存(staged):已提交表示資料已經安全地儲存在本地資料庫中。
工作流程:
(1)在工作區中修改檔案。
(2)將你想要下次提交的更改選擇性地暫存,這樣只會將更改的部分新增到暫存區。
(3)提交更新,找到暫存區的檔案,將快照永久性儲存到 git 目錄。
可選:
--原生的命令列模式
--gui 模式
由於只有在命令列模式下才能執行 git 的所有命令,因此從命令列開始學習~
linux:
sudo dnf install git-all
或者
sudo apt install git-all
windows:
git config --global user.name "john doe"
git config --global user.email [email protected]
安裝完 git 之後的第二件事:檢查配置資訊
找到git命令綜合手冊的三種等價方法:
git help git --help
man git-
例如,要想獲得git config
命令的手冊,執行:
git help config
git add -h
通常有兩種獲取 git 專案倉庫的方式:
--在已存在目錄中初始化倉庫
cd /c/user/my_project
git init
git add *.py
git commit -m 'initial project version'
--轉殖現有的倉庫
git clone
--檢查當前檔案狀態
git status
--跟蹤新檔案
git add
--暫存已修改的檔案
git add //執行了 git add 之後又作了修訂的檔案,需要重新執行 git add 把最新版本重新暫存起來
--忽略檔案
例如建立乙個名為.gitignore
的檔案,列出要忽略的檔案的模式
$ cat .gitignore
# 忽略所有的 .a 檔案
*.a# 但跟蹤所有的 lib.a,即便你在前面忽略了 .a 檔案
!lib.a
# 只忽略當前目錄下的 todo 檔案,而不忽略 subdir/todo
/todo
# 忽略任何目錄下名為 build 的資料夾
build/
# 忽略 doc/notes.txt,但不忽略 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目錄及其所有子目錄下的 .pdf 檔案
doc/**/*.pdf
針對不同語言的gitignore檔案列表:
--檢視已暫存和未暫存的修改
git diff
此命令比較的是工作目錄中當前檔案和暫存區域快照之間的差異。 也就是修改之後還沒有暫存起來的變化內容。
若要檢視已暫存的將要新增到下次提交裡的內容,可以用git diff --staged
命令。
--提交更新
git commit -m "提交說明"
--跳過使用暫存區域
git commit -a -m '提交說明'
--移除檔案
//從暫存區域移除
git rm //刪除之前修改過或已經放到暫存區的檔案
git rm -f //從暫存區域移除,但不刪除該檔案
git rm --cached
--移動檔案
git 並不顯式跟蹤檔案移動操作,如果在 git 中重新命名了某個檔案,倉庫中儲存的元資料並不會體現出這是一次改名操作。
git mv file_from file_to
指標學習筆記(持續更新)
question 1.什麼是指標?2.指標與引用的異同?何時使用指標,何時使用引用?1.c 提供兩種字串 string類物件和c風格的基於指標的char 字串。2.常量指標自身不可改變,而指向的目標可以改變。使用const修飾指標 指向非常量資料的非常量指標 如 int ptr 應用 間接引用指標使...
Linux學習筆記(持續更新)
1.開源軟體的優勢 使用的自由 絕大多數開源軟體免費 研究的自由 可以獲得軟體源 散布及改良的自由 可以自由傳播 改良甚至銷售 2.linux分割槽 必須分割槽 1.1 根分割槽 1.2 swap分割槽 交換分割槽,記憶體兩倍,不超過2g 推薦分割槽 boot 啟動分割槽,200mb 3.臨時改變i...
Linux學習筆記(持續更新)
uptime 用於獲取主機執行時間和查詢linux系統負載等資訊 vmstat vmstat命令可以檢視cpu負載 sar system activity reporter系統活動情況報告 是目前 linux 上最為全面的系統效能分析工具之一,可以從多方面對系統的活動進行報告,包括 檔案的讀寫情況 ...