最近在學習git,對git也有了新的認識,寫一些總結,文章基本總結於 Pro Gitcss
本章主要介紹一些git的基本知識,後續繼續跟進。git
git 自帶一個 git config 的工具來幫助設置控制 git 外觀和行爲的配置變量。這些變量存儲在三個不一樣的位置:數據庫
例如:安全
git config --global user.name "yourname" // 設置用戶名
git config --global alias.co checkout // 設置快捷鍵
注: 每個級別覆蓋上一級別的配置,git config --list 列出全部 Git配置工具
直接記錄快照,而非差別比較學習
git 更像是把數據看做是對小型文件系統的一組快照。 每次你提交更新,或在 git 中保存項目狀態時,它主要對當時的所有文件製做一個快照並保存這個快照的索引。 爲了高效,若是文件沒有修改,git 再也不從新存儲該文件,而是隻保留一個連接指向以前存儲的文件。 git 對待數據更像是一個 快照流。url
三種狀態spa
git 有三種狀態,你的文件可能處於其中之一:3d
已提交(committed)數據已經安全的保存在本地數據庫中 已修改(modified)修改了文件,但還沒保存到數據庫中 已暫存(staged)對一個已修改文件的當前版本作了標記,使之包含在下次提交的快照中
三個工做區域的概念:code
git倉庫:保存項目的元數據和對象數據庫的地方 工做目錄:對項目的某個版本獨立提取出來的內容。這些從 git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。 暫存區域:是一個文件,保存了下次將提交的文件列表信息,通常在git倉庫目錄中
git 工做流程:
1. 在工做目錄中修改文件。 2. 暫存文件,將文件的快照放入暫存區域。 3. 提交更新,找到暫存區域的文件,將快照永久性存儲到 git 倉庫目錄
在現有目錄中初始化倉庫
git init
克隆現有的倉庫
git clone [url]
文件狀態
git status
文件狀態切換:
新建README(Untracked) => git add README(staged) => git commit(unmodified)
狀態簡覽
git status -s
?? 新添加的未跟蹤文件 A 新添加到暫存區中的文件 M 修改過的文件 : 出如今靠左邊的 M 表示該文件被修改了並放入了暫存區; 出如今右邊的 M 表示該文件被修改了可是還沒放入暫存區;
跳過使用暫存區域
git commit -a -m ""
移除文件
從 git 中移除某個文件 git rm
移動文件
git mv file_from file_to
查看提交歷史
git log
注:後續許多操做都會基於log來進行
取消暫存的文件
暫存區域 git reset HEAD <file>
注: 雖然在調用時加上 --hard 選項能夠令 git reset 成爲一個危險的命令(譯註:可能致使工做目錄中全部當前進度丟失!),但本例中工做目錄內的文件並不會被修改。 不加選項地調用 git reset 並不危險 — 它只會修改暫存區域。
撤消對文件的修改
git checkout -- <file>
本期就先寫這麼多,下一期會寫關於分支的知識,敬請期待