Git功能簡單概述java
git reset --hard
);git log
);操做git
版本控制系統:正則表達式
注意文件存儲和SVN不一樣:數據庫
Git 不按照SVN那樣對待或保存數據。 反之,Git 更像是把數據看做是對小型文件系統的一組快照。 每次你提交更新,或在 Git 中保存項目狀態時,它主要對當時的所有文件製做一個快照並保存這個快照的索引。 爲了高效,若是文件沒有修改,Git 再也不從新存儲該文件,而是隻保留一個連接指向以前存儲的文件。 Git 對待數據更像是一個 快照流。服務器
總結特色:架構
snapshoot
。而並不是比較差別;modified
)staged
)committed
)
working directory
)修改Git文件;staging area
); (注意SVN中沒有暫存區這個概念)git directory
);
Git 倉庫目錄是 Git 用來保存項目的元數據和對象數據庫的地方。 這是 Git 中最重要的部分,從其它計算機克隆倉庫時,拷貝的就是這裏的數據。併發
工做目錄是對項目的某個版本獨立提取出來的內容。 這些從 Git 倉庫的壓縮數據庫中提取出來的文件,放在磁盤上供你使用或修改。分佈式
暫存區域是一個文件,保存了下次將提交的文件列表信息,通常在 Git 倉庫目錄中。 有時候也被稱做‘索引’,不過通常說法仍是叫暫存區域。高併發
基本的 Git 工做流程以下:spa
git add
。git commit
。git add 放到暫存區;
git commit 從暫存區放到版本倉庫中;
Git是分佈式的。
關於配置user.name
和user.email
:
能夠有三個地方配置:
好比輸入git config
命令, 會出現下面三個信息,即系統級別system
,全局global
,和局部local
。其中優先級不斷升高。
zxzxin@zxzxin:~/Git/gitlearn$ git config usage: git config [<options>] Config file location --global use global config file --system use system config file --local use repository config file -f, --file <file> use given config file --blob <blob-id> read config from given blob object
這裏展現一下配置咱們局部的gitlearn
倉庫:
git 提交的id(commit id
)是一個摘要值,這個摘要值其實是一個sha1
計算出來的。
git rm :
git commit
來提交)若想恢復被刪除的文件,須要進行兩個動做:
git reset HEAD test2.txt
,將待刪除的文件從暫存區恢復到工做區;git checkout -- test2.txt
, 將工做區的修改丟棄掉;**rm **:
git commit
)不了的。要想歸入暫存區,必需要再調用一次git add
。實戰對比:
git mv(和git rm
相似):
git mv
演示:
而 mv:
git add
提交到暫存區;
使用技巧: 能夠經過git commit --amend -m '修正內容'
更改上次錯誤的提交消息。(就是-m ''
)後面的提交信息寫錯了。
git log -n
能夠查看最近的n
條日誌。
git log --pretty=oneline
以一行一行的方式顯示出來。
查看git命令幫助:
.gitignore
文件在開發中,若是咱們不想將全部的文件都放到git當中,而是要忽略少數一些文件(好比jar
包、配置文件等),咱們能夠在咱們的目錄建立一個.gitignore
文件,git就不會將這些文件放入暫存區,也不會提交(不會加入版本控制系統)。
此時咱們能夠建立一個.gitignore
文件:
簡而言之,放在.gitignore
中的文件會直接被git
無視。
其中,放在.gitignore
中的文件也支持正則表達式。
例如:
*.a
,會忽略全部.a
結尾的文件;!lib.a
,不要忽略lib.a
(排除這個忽略);/test.txt
,僅僅忽略項目根目錄下的TODO
文件,不包括子目錄下的test.txt
文件;dir1/
,忽略dir1/
目錄下的全部文件;dir1/*.txt
,會忽略dir1/a.txt
但不會包括dir1/dir2/a.txt
。dir1/*.txt
會忽略dir1
下的全部.txt
文件,dir1/*/*.txt
會忽略dir1
下全部層下的.txt
,而dir1/**/*.txt
會忽略dir1/
下的任意層的.txt
文件。
在.gitignore
中用#
表示註釋。
原文:Java架構筆記
免費Java高級資料須要本身領取,涵蓋了Java、Redis、MongoDB、MySQL、Zookeeper、Spring Cloud、Dubbo高併發分佈式等教程,一共30G。
傳送門: https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q