目录
前言
git:团队协同开发的版本管理工具
对外开放的:码云、github、腾讯云、阿里云都可以和git对接
底层是根据版本号控制的,和java并发编程原理很像
它会拷贝很多份,如果不小心搞坏了程序,可以回退到以前的版本
git服务端会保存全部版本的代码,然后进行备份,一方出错,其他方可以复原
学习平台:Home - 廖雪峰的官方网站
腾讯云管理平台 登录 - 腾讯云
我们可能不断更改项目版本
如果客户需要版本一,如何回退?
一、备份,我们可以每次做好一版本,都保存一下
二、一点点改回去
git的作用?
版本管理工具,自动帮我们管理版本...
git如何实现的?
远程仓库:存储在某一个服务器上的
本地仓库:在我的电脑上创建这个项目
git会帮我们管理这些仓库
如何使用?
不知道你学习的时候有没有遇到这样的情况:
比如说,我们要做某一个程序,你手中有一份办成品,但现在需要在上面进行修改。
1、你怕修改之后万一出现什么错误,把原来的文件也弄坏了;
2、每当我们完成一个新的需求点之后,又来了对这个需求更好的实现方式。为了能够有及时发布我们不得不对原来的代码进行保存
于是你不得不复制出一个又一个副本,随着需求点越来对多,于是每次都是复制粘贴副本,产出的文件就越来越多,文件多不是问题,问题是:随着版本数量的增多,你还记得这些版本各自都是修改了什么吗?
为了能够更方便我们管理这些不同版本的文件,于是有了版本控制器。
安装
官网下载地址/ 群里安装包
https://git-scm.com/downloads
安装步骤
图形化安装
配置全局用户名和邮箱
git config --global user.name "Your Name" git config --global user.email "email@example.com"
配置SSH
# 生成sshkey ssh-keygen -t rsa #执行完毕上面命令之后,按几次回车 #查看公钥的内容,复制到git的sshkey位置 cat ~/.ssh/id_rsa.pub
创建git仓库
git init
状态模型
- 工作区(workplace)
- 暂存区(index)
- 本地仓库(local repository)
- 远程仓库(remote repository)
仓库管理
工作区(workpace->暂存区(index)
git add . #当前文件夹以及子文件夹 git add fileName #某个文件
暂存区(index)->本地仓库(local repository)
git commit -m '备注提交内容'
新建远程仓库
以码云为列进行安装-----需要配置公钥
克隆远程仓库
git clone xxxx地址 (不加分支默认master) #默认拉取master分支代码 git clone git@gitee.com:liuzhenyu666/test0130.git
克隆远程仓库其他分支(了解内容)
git clone -b xxxxx分支 xxxx地址 (不加分支默认master) #拉取dev分支代码 git clone -b dev git@gitee.com:liuzhenyu666/test0130.git
工作常用步骤
git status #查看当前仓库状态 git add . #添加到暂存区 git commit -m 'xxxx' #添加到本地仓库 git pull # 同步远程仓库到本地,检查远程仓库是否比本地版本更高一些 git push #推送到远程仓库
日志查看
提交日志
git log #日志 git log --pretty=oneline #美化输出,行格式显示 git log --pretty=oneline --abbrev-commit #简化版本号 行格式显示
历史命令日志
#版本相关,如果再版本回滚时误操作了,可以通过这 #个地方来找历史的版本号和命令进行恢复 git reflog
撤销和回退
撤销修改
git checkout xxx #撤销某个文件修改,这里的数据还没有提交到暂存区 git checkout . #撤销当前文件夹内所有修改 git reset --hard HEAD #放弃暂存区中所有的修改和新增
版本回退,慎用
git reset --hard HEAD #放弃当前所有修改,回退到当前版本 git reset --hard HEAD^ #回退到上一个版本
分支管理
查看分支
git branch #查看本地分支 git branch -a #查看所有分支
创建分支
git checkout -b xxx分支名字 #创建并切分支
git branch xxx分支 #创建 git checkout xxx分支 #切分支
合并分支到当前分支
git checkout master #切换到master分支 git merge xxx分支名字 #合并分支
删除分支
git branch -d # 删除已合并的分支,有未合并代码不允许删除 git branch -D # 强制删除有未合并代码的分支 git push origin --delete dev_new #删除远程分支
本地分支和远程分支第一次关联
git push origin xxx分支名字
合并远程分支(master分支之下)
git checkout master git pull origin xxx分支名字 #远程拉取XX分支 git merge origin /xxx分支名字 git push
git init 创建本地仓库
git add 文件名 提交到暂存区
git
git commit - m"备注信息" 提交到仓库
注意:以上操作需要提前配置好用户信息
//配置用户信息 git config --global user.email "you@example.com" git config --global user.name "Your Name" |
提交到仓库成功的截图:
两个人同时提交的话,就会出现错误,如何解决?
git pull 拉取文件
然后线下协商哪个保留,我们就把另一个删了,重新提交 git add git commit -m" " git push
测试中遇到的问题 每次上传文档必须保证仓库是空的 怎么解决?
git pull --rebase origin master
git push -u origin master
分支
创建分支
添加文件
备注文件
提交文件
git checkout master 切换回主分支
注意! 每次都要 git pull
git merge 名字 合并分支 git pull
撤销一个版本 从暂存区撤销
git status 查看修改了哪些文件