sha-1 哈希值 作为指纹字符串 和 索引
**文件有三种状态:已提交(committed) / 已修改(modified) / 已暂存(staged). **
已提交表示该文件已经被安全地保存在本地数据库中了; 已修改表示修改了某个文件,但还没有提交保存; 已暂存表示把已修改的文件放在下次提交时要保存的清单中。 配置工作环境变量 git config 工具
git config --system 读写 /etc/gitconfig文件 ,对系统所有的用户使用的配置。
git config --global ,读写~/.gitconfig文件,用户目录下的配置文件只适用于该用户。
.git/config文件,只针对当前项目有效。会覆盖上层的相同配置。
用户信息配置(用户名和邮箱) git config --global user.name "Sean" git config --global user.email xmtx@gmail.com 文本编辑器 git config --global core.editor emacs 差异分析工具 git config --global merge.tool bimdiff 查看配置信息 git config --list or git config user.name git 帮助命令 git --help || git help verber git 基本命令 初始化新仓库 git 克隆 工作目录下的文件只有两种状态:已跟踪或未跟踪。
查看文件状态 vim命令自己学吧
跟踪新文件 git 忽略文件 创建一个.gitignore文件,列出要忽略的文件模式。
for example:
第一行忽略以.o或者.a结尾的文件。第二行是忽略以~结尾的文件。
文件.gitignore的格式规范: 多有空行或者以注释符号#开头的行都会被Git忽略。
可以使用标准的glob模式匹配。
匹配模式最后跟反斜杠(/)说明要忽略的是目录。
要忽略制定模式以外的文件或目录,可以在模式前加上所谓的glob模式是指shell所使用的简化了的正则表达式。
星号(*)匹配零个或多个任意字符;[abc]匹配任何一个列表在方括号中的字符(要么匹配一个a,要么匹配一个b,要么匹配一个c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分割两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有0到9的数字)。
demo: # 此为注释 - 将被Git忽略
# 忽略所有 .a 结尾的文件
*。a
#但lib.a除外
!lib.a
# 仅仅忽略项目根目录下的TODO文件,不包括subdir/TODO
/TODO
# 忽略 build/目录下的所有文件
build/
# 会忽略 doc/notes.txt但不包括soc/server/arch.txt
doc/*.txt
# ignore all .txt files in the doc / directory
doc/**/*.txt
A **/ pattern is available in gIT SINCE VERSION 1.8.2
复制
查看文件具体修改了什么地方 查看已经缓存起来的文件和上次提交时的快照之间的差异: git diff --cached
git diff --staged (Git 1.6.1以及更高版本)
git diff 不过是显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。 ssh-keygen -t rsa -C “your_email@example.com”
git pull 不能默认将所有tag 拉下来 ,因此在拉取之前要先执行,
git fetch --tags
然后 再 git tag 就有了
(adsbygoogle = window.adsbygoogle || []).push({});