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