Git
Git 起步
Git 基础
- 直接记录快照,而非差异记录
- 近乎所有操作都是本地执行
- 时刻保持数据完整性
- 多数操作仅添加数据
-
文件的三种状态(committed,modified,staged)
已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。
由此我们看到 Git 管理项目时,文件流转的v三个工作区域:Git 的工作目录,暂存区域,以及本地仓库。
Git 基础
记录每次更新到仓库
忽略某些文件
创建 .gitignore
- 所有空行或者以注释符号 # 开头的行都会被 Git -忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。星号(*)匹配零个或多个任意字符;[abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);问号(?)只匹配一个任意字符;如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如 [0-9] 表示匹配所有 0 到 9 的数字)。
查看提交历史
选项 说明
%H 提交对象(commit)的完整哈希字串
%h 提交对象的简短哈希字串
%T 树对象(tree)的完整哈希字串
%t 树对象的简短哈希字串
%P 父对象(parent)的完整哈希字串
%p 父对象的简短哈希字串
%an 作者(author)的名字
%ae 作者的电子邮件地址
%ad 作者修订日期(可以用 -date= 选项定制格式)
%ar 作者修订日期,按多久以前的方式显示
%cn 提交者(committer)的名字
%ce 提交者的电子邮件地址
%cd 提交日期
%cr 提交日期,按多久以前的方式显示
%s 提交说明
v
撤销操作
git commit -- amend
远程仓库
git remote
git remote -v
添加远程仓库
git remote add [shortname] [url]
从远程仓库抓取数据
git fetch [remote-name]
git pull
推送数据到远程仓库
git push [remote-name] [branch-name]
查看远程仓库信息
git remote show [remote-name]
远程仓库的删除和重命名
git remote rename
Git 分支
Git 服务器
本地协议
git clone file:///opt/git/project.git
SSH 协议
git clone ssh://user@server/project.git
Git 协议
HTTP/S 协议
Git 分布式
Git 命令
git init git clone git status git add git diff git diff --staged git commit git commit -m git commit -a git rm git rm --cached git mv git log git commit --amend