- 创始人: Linus Torvalds
- Git官网:http://git-scm.com
- 优势:分布式版本控制管理
- 快照存取,不记录不同版本之间具体的修改内容。
- 文件三种状态:已提交(committed),已修改(modified),已暂存(stagged)
- Git资源目录:.git
- 所有的版本控制信息存储在此目录,工作目录中的内容也是从此目录提取的。
- 帮助命令:git help [command]
- 初始化:git init [directory]
- 添加具体目录,对该目录进行初始化,若未添加,默认当前目录。
- 设置例外文件:.git/info/exclude
- 若在该文件中添加“mytest/”,git将会自动排出mytest文件夹。
- 若在该文件中添加“mytest/”,git将会自动排出mytest文件夹。
- 设置追踪忽略的文件:.gitignore
- 若添加“db/*.db”,将自动不对db目录下所有.db后缀的文件进行追踪。
- 若添加“db/*.db”,将自动不对db目录下所有.db后缀的文件进行追踪。
- 简单设置Git:git config
- 设置基本信息
- git config --global user.name "your name"
- git config --global user.email "your email"
- git config --global color.ui true (设置log信息高亮显示)
- 设置命令别名
- git config --global alias.st status
- git config --global alias.co checkout
- git config --global alias.mylog "log --pretty=format: '%h %s [%an]' --graph"
- git config --global alias.br branch
- git config --global alias.ci commit
- git config --global alias.st status
- 查看设置信息
- 全部:git config --list
- 具体:git config user.email
- 设置基本信息
- 添加:git add [-A] [directory or filename]
- [-A]:对所有添加,修改以及删除的操作放入暂存区。
- 填写目录,将自动添加目录下所有可被追踪的文件。
- 填写文件路径,将只添加选择的文件。
- 添加当前目录下所有文本文件:git add '*.txt'
- 添加docs目录下所有文本文件:git add docs/*.txt
- 删除:git rm [filename]
- 从本地目录中删除文件。
- 删除暂存区的文件(只是从git目录中删除,本地资源并未删除):git rm --cached filename
- 查看所在分支状态:git status [-s]
- [-s]:是否简略显示
- 查看差异信息:
- 未放入暂存区:git diff
- 放入暂存区:git diff --staged
- 查看文件差异:git diff filename1 filename2
- 查看当前状态与最后一次提交的差异:git diff HEAD
- 查看与最后第二次提交的差异:git diff HEAD^^
- 查看与最后第五次提交的差异:git diff HEAD~5
- 查看最后两次之间的差异:git diff HEAD^..HEAD
- 查看两次提交之间的差异:git diff <commit1_SHA> <commit2_SHA>
- 查看两个分支之间的差异:git diff <branch1> <branch2>
- 查看文件每行的修改信息:git blame index.html --date short
- 提交:git commit [-a] -m "some words"
- [-a]:自动暂存已追踪文件的修改,对新添加文件不暂存。
- 日志:
- 查看:git log
- 简易查看:git log --pretty=oneline
- 自定义查看:git log --pretty=format:"%h %ad- %s [%an]"
- 查看简易更新日志:git log --oneline -p
- 查看简易状态日志:git log --oneline --stat
- 查看简易的图形日志:git log --oneline --graph
- 查看一段时间的日志:
- git log --since=1.day.ago --unitl=1.minute.ago
- git log --since=2010-6-29 --unitl=2014-12-12
- 分支:
- 查看本地分支:git branch
- 查看远程分支:git branch -r
- 新建分支:git branch branch_name
- 选择分支:git checkout branch_name
- 选择+新建:git checkout -b branch_name
- 删除合并之后的分支:git branch -d branch_name
- 删除没有合并的分支:git branch -D branch_name
- 删除远程分支:git push remote_name :branch_name
- 合并分支:git merge branch_name
- 合并之前要选择到目标分支上,一般为项目master分支或开发分支
- 远程库:
- 查看远程库:git remote [-v]
- [-v]:用于查看远程库地址
- 添加远程库:git remote add remote_name some_url
- your_name:随意为该远程库命一个自己知道的名称
- 常用的地址类型有https和ssh,前者需要在每次提交时填写账号和密码,而后者在前期配置后提交将不需要额外信息。
- 查看远程库详细信息:git remote show remote_name
- 查看远程库:git remote [-v]
- 与远程库同步:
- 拉取远程库:git fetch
- fetch只是拉取到.git目录,未和本地工作目录内容进行合并。
- 拉取远程库并与本地合并:git pull
- 拉取远程库:git fetch
- 提交代码到远程库:git push [-u] remote_name branch_name
- [-u]:记录此次远程对象,再次同步时可以直接使用git push。
- 克隆远程库代码:git clone some_url
- 建议克隆时就使用SSH地址,方便后续提交操作。
- 检测冲突:git pull --rebase remote_branch
- 该步骤可以细分:
- git checkout branch_name
- git pull
- git rebase remote_branch
- rebase:对所有当前分支的修改于远程库进行比较,将比较结果存储于临时区域,方便修改冲突文件。
- 冲突文件格式:
- <<<<<<< HEAD
- remote version codes
- =======
- local version codes
- >>>>>>>
- <<<<<<< HEAD
- 该步骤可以细分:
Git知识积累
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.