版本控制器--Git(注意版本号)
什么是版本控制器?
版本控制器就是管理项目的工具,用于记录和存储项目的更新迭代和备份等信息,以更好的控制项目的生命周期,有效减少风险。
如果是团队开发同一个项目,版本控制器可以整合代码,提醒代码的冲突问题
集中式和分布式版本控制器
集中式版本控制器
代表:svn
只有一个集中管理的服务器,保存所有文件的修改,多个客户端连接这个服务器,提交和更新文件
问题:
如果服务器被黑或者出现了异常,代码可能丢失,开发进度将会被拖延,而且必须联网才能正常工作

分布式版本控制器
代表:git
Git只关心文件数据整体变化,保存每次项目的快照,而且是分布式的,每一天电脑都可以作为服务器,也可以同时开发(客户端和服务端整合)

git工作流程

常用命令
cd cd .. ls ll 编辑文件 vi i 进入编辑 esc 退出编辑 :wq 保存退出
创建全局用户
首先得创建全局用户,否则不让commit git config --global user.name git config --global user.email 全局配置文件在C:\Users\用户文件夹\.gitconfig新建用户信息,在所有仓库下都可以使用,创建的用户就在里面
创建仓库用户-局部用户
git config user.name git config user.email 局部配置文件在.git的config里面 .git就是进行版本控制的核心
git四大核心命令
git init 初始化仓库(.git) git add 添加改变到暂存区 git status 查看当前仓库的状态 git commit -m ''把暂存区的的变化提交到版本库(生成版本号) git add . git status -s 简约显示

回滚
工作区
git checkout filename git checkout . 放弃文件的修改,相对于上次的版本,只针对于文本内容的修改,新建文件等无效
暂存区
git reset HEAD . 撤销所有暂存区的提交 git reset 文件名 撤销某一文件的暂存区提交
版本库
查看历史版本 git log git reflog 精简模式显示 git log --pretty=oneline 查看时间点之前|之后的日志: >: git log --after 2018-6-1 >: git log --before 2018-6-1 >: git reflog --after 2018-6-1 >: git reflog --before 2018-6-1 查看指定开发者日志 >: git log --author author_name >: git reflog --author author_name 回滚到指定版本: 回滚到上一个版本: >: git reset --hard HEAD^ >: git reset --hard HEAD~ 回滚到上三个版本: >: git reset --hard HEAD^^^ >: git reset --hard HEAD~3 回滚到指定版本号的版本: >: git reset --hard 版本号 >: eg: git reset --hard 35cb292
但是回退版本后,git log是看不到回退之前的版本的,如果想回退之前的版本,要确保此窗口没有关闭,然后根据之前打印的版本号回退执行下面命令,版本号写一部分就行
查看区别和删除
命令可以查看工作区和版本库里面最新版本的区别 git diff HEAD -- zx.txt 删除文件,最后也要提交 git rm
过滤文件 .gitignore
在仓库根目录下创建该文件 过滤文件内容 文件或文件夹名:代表所有目录下的同名文件或文件夹都被过滤 /文件或文件夹名:代表仓库根目录下的文件或文件夹被过滤(/代表根目录) a.txt:项目中所有a.txt文件和文件夹都会被过滤 /a.txt:项目中只有根目录下a.txt文件和文件夹会被过滤 /b/a.txt:项目中只有根目录下的b文件夹下的a.txt文件和文件夹会被过滤 *x*:名字中有一个x的都会被过滤(*代表0~n个任意字符) 空文件夹不会被提交,空包会被提交(python的包)
django
# 过滤条件一定要在第一次提交版本库之前完成 # 各类编辑器产生的配置文件 .idea .vscode *.suo *.ntvs* *.njsproj *.sln *.sw? # 日志文件 *.log *.logger # 本地测试文件 scripts # 导包缓存文件 *.pyc __pycache__
远程仓库
前提
1.本地有仓库 2.本地配置了用户信息 3.有ssh密钥 4.配置了远程仓库的源
创建公钥
官网:https://gitee.com/help/articles/4181#article-header0 创建好之后记得在远程仓库配置好,在user文件夹内的ssh内
ssh和https
ssh会自动提交本地的ssh密钥 https需要账号密码
remote 源操作
一般在远程仓库创建好之后就会直接提示源的信息
1)查看仓库已配置的远程源 git remote git remote -v 2)查看remote命令帮助文档 git remote -h 3)删除远程源 git remote remove 源名 git remote remove origin 4)添加远程源 git remote add 源名 源地址 git remote add orgin git@*.git git remote add origin git@gitee.com:ZX125/ZX_jy.git
配置完成,可以提交到远程
克隆一次
后面
先拉(处理冲突)在拉(没有冲突的话,交)
后提交
#克隆 git clone git@gitee.com:ZX125/ZX_jy.git #提交 git push -u origin master #更新 git pull origin master
乱码问题
[gui]
encoding = utf-8
git config --global core.quotepath false
git states 乱码
冲突问题-原理
方框内的是版本号,冲突的原理就是版本号
1.如果本地的版本号(1-a)线上版本号是(1-a-b)就直接更新到(1-a-b)
2.如果本地的版本号(1-a)线上版本号是(1-b),版本号冲突,解决冲突后提交,版本(1-a-b-c)

分支操作
创建分支就相当于复制一份当前分支,作为独立的分支,不会相互影响
git合并(merge)
git合并其实也没有什么东西,就是类似于本地和线上master的操作是怎么样,那么本地两条分支之间的操作就是什么样的
git merge zx 就是把zx的修改同步到本分支
1.创建分支 >: git branch 分支名 2.查看分支 >: git branch 3.切换分支 >: git checkout 分支名 4.创建并切换到分支 >: git checkout -b 分支名 5.删除分支 >: git branch -d 分支名 6.查看远程分支 >: git branch -a 7.合并分支 >: git merge 分支名
参考链接
https://www.cnblogs.com/Sungeek/p/9152223.html
https://www.cnblogs.com/best/p/7474442.html