git的架构
- 版本库:项目中,git init之后会有一个.git的目录,这个目录不属于工作区,而是git的版本库,管理git的所有内容
- 暂存区:版本库中的一个临时存储的区域,保存提交的文件
- 分支:版本库中包括若干个分支,从暂存区提交出去的文件会在分支中形成 一个版本(提交点)
仓库(版本库)
仓库就是一个目录,这个目录内的文件被git所管理起来
新建一个仓库
在一个目录下,运行
1 | git init |
基本操作
查看仓库状态
1
git status
将有修改的文件提交到暂存区
1
git add .
将暂存区的文件提交到分支,形成一个版本(提交点)
1
git commit -m "这一次提交的信息"
远程仓库
刚才我们所说的仓库其实是本地仓库,在多人开发中,每个人都会有一个自己的本地仓库,同时,更重要的,为了让多人可以共享代码,应该有一个远程仓库
“远程仓库”的选择
- github
- 码云
- 公司内部构建的远程仓库
远程仓库的操作
注册github账号
创建一个空的仓库
将需要提交到远程仓库的目录进行如下操作
1
2
3
4
5
6
7
8
9
10
11
12# 初始化目录
git init
# 查看当前状态
git status
# 提交到暂存区
git add .
# 提交成一个版本
git commit -m 'first commit'
# 在远程创建一个地址
git remote add origin github仓库地址
# 将当前版本提交到远程地址的master分支
git push -u origin master
远程仓库的共享和克隆
此时我们已经有了一个自己的远程仓库,同时仓库内的master分支上已经有我们刚才提交的文件。此时如果有其他人员需要下载这个项目,需要进行克隆操作
1 | git clone 仓库地址 |
提交
撤回提交 git reset
–soft
1 | # 撤回上一次提交 |
–mixed
意思是:不删除工作空间改动代码,撤销commit,并且撤销git add . 操作
这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。
–soft
不删除工作空间改动代码,撤销commit,不撤销git add .
–hard
删除工作空间改动代码,撤销commit,撤销git add .
注意完成这个操作后,就恢复到了上一次的commit状态。
修改提交注释
1 | git commit --amend |
分支
一个远程仓库中可以有多个分支(master, dev, test),而一个分支上就存储了我们之前提交的版本,随着提交次数的增多,在分支上会形成一条时间线,每一次的git commit 操作都会在分支上形成一个版本
基本操作
查看分支
1
git branch
创建新的分支,同时复制当前分支
1
git branch 分支名
切换分支
1
git checkout 分支名
将新分支提交
1
git push origin HEAD -u
指针
每一个分支都有一个指针,指针默认都会指向分支上最新的一个版本
分支提交日志查询
1 | git log --oneline |
分支合并
将一个分支合并到另一个分支上
1 | git merge 分支a #把分支a合并到当前分支上 |
git命令总结
1 | git init #初始化本地仓库 |
上传到远程仓库
1 | # 连接到远程仓库 |