什么是git
定义
特点
- 分布式
- 按元数据方式存储数据
- 内容完整性高
工作流程
stateDiagram
资源库 --> 工作副本:clone
工作副本 --> 修改工作副本: 编辑、添加、删除
资源库 --> 修改工作副本: 更新
修改工作副本 --> 检查修改: 查看status, change
检查修改 --> 提交修改: push
提交修改 --> 修改错误: push,change
修改错误 --> 资源库: push
提交修改 --> 资源库: push
创建仓库
创建
-
git init <repo>
创建仓库repo
-
生成.git目录
纳入版本控制
复制
git clone <repo> (<dir>)
将仓库repo拷贝到dir目录
配置
1
2
|
git config --global user.name <name>
git config --global user.email <email>
|
基本操作
示意图
stateDiagram
workspace --> staging_area: add
staging_area --> lcoal_repository: commit
lcoal_repository --> remote_repository: push
remote_repository --> lcoal_repository: fetch/clone
lcoal_repository --> workspace: checkout
remote_repository --> workspace: pull
简单的操作步骤
1
2
3
|
git init # 初始化仓库
git add . # 将文件添加到暂存区
git commit # 将暂存区内容添加到仓库
|
提交和修改
git add
git add [file1] [file2] … |
添加多个文件到暂存区 |
git add [dir] |
添加目录到暂存区 |
git add . |
添加当前目录下所有文件到暂存区 |
git diff
git diff [file] |
显示暂存区和工作区的差异 |
git diff –cache(staged 也可) [file] |
显示暂存区和上一次提交的差异 |
git diff [first-branch]…[second branch] |
显示两次提交之间的差异 |
git commit
git commit -m [message] |
提交暂存区到本地仓库 |
git commit [file1] [file2] … -m [message] |
提交暂存区的指定文件到本地仓库 |
git commit -a |
不需要git add 直接提交 |
git reset
git reset HEAD |
回退所有内容到上一个版本 |
git reset HEAD [file] |
回退文件file到上一个版本 |
git reset –soft HEAD~n |
回退到前n个版本 |
git reset –hard HEAD |
撤销工作区中所有未提交的修改内容 |
-
HEAD^
中^
的个数表示前几个版本
-
HEAD~n
可以取代上面的方式
-
message
为备注信息
其他指令
git status |
查看仓库状况,显示有变更的文件 |
git rm |
从暂存区和工作区中删除文件 |
git mv |
移动或重命名工作区文件 |
提交日志
git log
git log –oneline |
查看历史提交记录的简洁形式 |
git log –graph |
拓朴图形式查看历史提交记录 |
git blame <file>
查看指定文件的修改记录
远程操作
git remote
git remote -v |
显示所有远程仓库 |
git remote show [remote] |
显示某个远程仓库信息 |
git remote add [shortname] [url] |
添加远程版本库 |
git remote rm name |
删除远程仓库 |
git remote rename [old_name] [new_name] |
修改仓库名 |
git fetch
git pull
1
|
git pull [远程主机名] [远程分支名]:[本地分支名]
|
-
将远程主机的分支拉过来与本地分支合并
-
若远程分支与当前分支合并,则冒号后可以省略
git push
1
|
git push [远程主机名] [本地分支名]:[远程分支名]
|
-
将本地分支推送到远程主机
-
参数
–force |
强制推送 |
–delete |
删除主机分支 |
分支管理
创建分支
-
git branch <name>
创建分支
-
git branch
列出分支
切换分支
分支合并
git merge <branch>
- 合并冲突
删除分支
查看提交历史记录
-
git log
查看历史提交记录
-
git blame <file>
以列表形式查看指定文件的历史修改记录
Git与Github
添加远程仓库
1
2
|
git remote add [远程仓库名称] [url]
# 名称自取,url可以是https,也开始是ssh等其他格式
|
生成SSH Key
1
2
|
ssh-keygen -t rsa -C “Email@example.com”
# 邮箱为注册github的邮箱
|