一、简介
两大特点:版本控制,找回解决历史代码的问题;分布式(与集中式想对应)
三个重要的区域:
工作区(Working Dir)
暂存区(index)
版本库(Repository)
二、基本使用
1.初始化与创建版本
# 1.初始化:进入需要初始化的文件夹
git init
# 2.创建一个版本 :
git add 文件/多个文件(中间空格)/目录
git commit -m '说明的信息'
# 3.查看版本的记录
git log
git log --pretty=oneline # 以简短的方式进行显示
# 4. 版本的回退,HEAD指向最新的版本,HEAD^上一个版本=HEAD~1,前100个版本HEAD~100
git reset --hard HEAD^
# git并没有把最新的版本删除
git reset --hard 版本编号(前几位)
# 5. 查看之前操作的记录
git reflog
# 6. 查看当前工作树的状态
git status
# 7. 放弃对文件的修改(文件没放置暂存区)
git checkout -- 文件名
# 当加入暂存区时
git reset HEAD 文件名 # 取消暂存
git checkout -- 文件名 # 取消改动
# 已经创建版本了则进行版本的回退
git add :把文件修提交到暂存区
git commit :把暂存区的文件创建版本记录(提交之前可以多次git add)
2.对比文件的不同
# 1. 对比工作区和版本库中的文件的不同
git diff HEAD -- 文件名
# 2. 对比HEAD版本与HEAD上一个版本的不同
git diff HEAD HEAD^ -- 文件名
# 3. 删除文件(工作区的改动,与添加本质一样)
git checkout -- 文件名 # 恢复删除
# 确定要删除
git rm 文件名 # 放入暂存区
git commit -m '删除文件'
3.分支管理
默认master分支,新建分支(本质是创建指针,速度很快)
分支的基本操作:
# 1.显示分支
git branch
# 2.创建并切换到一个分支
git checkout -b dev # dev 为分支名字
git branch 分支名 # 只创建分支,不切换
# 3.切换分支
git checkout master
# 4.合并dev分支合并到master分支
git merge dev # 快速合并 Fast-forward(系统能够使用自动使用)
# 5.合并后删除dev分支
git branch -d dev
分支的冲突解决:
# 在两个分支均修改了同一个文件并提交版本
# 手动解决冲突后在进行创建版本
# 查看分支的图
git log --graph --pretty=oneline
分支的管理策略
有时快速合并不能成功并且没有冲突,此时合并会进行一次新的提交
禁入快速合并:
# 1.禁用快速合并(为了保留dev中的提交信息)
git merge --no-ff -m '信息' dev
BUG分支
一般BUG通过一个新的临时分支来修复,修复后,合并分支,然后将临时分支删除
git 提供可 stash功能,可以把工作现场”保存起来“,等修复完bug后再处理
# 修改了文件文件未提交
git stash
# 修复完成后重新回到工作显示
git stash list # 列出保存的工作现场
git stash pop # 恢复工作现场
三、GitHub使用
推送,跟踪
# 1.推送至GitHub上 ,origin代表远程,即GitHub
git push origin 分支名称
# 2.本地分支跟踪远程分支 本地的songkun分支跟踪远程的sognkun分支
git branch --set-upstream-to=origin/songkun songkun
# 跟踪之后要有新版本发布的话直接:
git push
# 3.从远程分支拉取
get pull origin songkun
(1)项目经理搭建项目的框架
(2)搭建完成后,项目经理把项目框架代码放置服务器
(3)在自己的电脑上,生成ssh公钥,把公钥交给经理,经理把ssh公钥添加到这个服务器上
(4)项目经理给每个组员项目的克隆地址,把项目下载的自己电脑
(5)创建本地的dev分支
(6)开发完成后,将自己的代码发布远程的dev分支上。
master:用于保存发布的项目代码。
dev:保存开发过程中的代码。
使用云服务器: