1、集中版本控制---svn
优点:1、很好的做权限管理。
缺点:1、如果没有做特别的备份,磁盘坏掉数据就没了。
2、离线状态、无法进行提交操作。
2、git ---分布式版本控制工具 修改之后提交到本地
优点:离线可以提交代码,代码冗余度(有一好就可)比较高。
缺点:存储加大,目录级别的权限不好管理。
git的基本使用(以下命令需要在git仓库文件夹下面操作)
1、git init :进入git仓库,初始化仓库(把一个普通文件夹变成git仓库),使用git命令去管理(同目录下多出一个.git文件夹)
2、git add 文件名/git add --all 添加文件到追踪暂存区。
git add aa(git追踪文件)提交的是追踪的文件
3、git status 查看当前git仓库的修改文件的状态,哪些修改文件追踪了,哪些文件没有被追踪。
4、git commit -m “xxx” 提交本次修改到历史版本。xxx是对这次提交的说明。
5、git log 查看历史版本记录
git log -p 是查看详细提交代码
①git log 查看版本 ②enter键 ③增加second commit second commit
6、git reset 562b04176d98a8900dfeace8e330dedf24cf1be2 --hard回滚到指定版本
其中562b04176d98a8900dfeace8e330dedf24cf1be2 是版本号 #回滚之后再 git push origin master上去。
7、git reflog 记录每次提交的版本号
8、git remote add origin xxx 添加别名()映射,将远程仓库地址xxx。
9、git remote -v 查看当前有哪些别名映射。
10、git remote delete origin 删除origin别名映射。
11 、git pull origin master 拉取远程origin仓库的内容到本地仓库。
12、git push origin master 推送本地仓库的历史版本到远程仓库。
13、git push origin master -f 强制推上去
例如:
创建文件aa 提交文件;
git commit -m “test”:提交的文件只是用于测试。
3、git仓库的使用
将一个远程仓库拉取下来,并在本地仓库修改,然后推送本地仓库版本到远程仓库中。
1、在gitee页面上fork远程仓库
2、把自己的远程仓库拉取下来
git clone xxx :xxx是自己的仓库地址。
git clone https://gitee.com/angel521/hyrz-teacher
$ git clone (master)
cd hyrz-teacher
3、添加对远程仓库的别名映射。
git remote add origin3 xxx(xxx 是远程仓库的地址)
4、查看仓库别名映射
git remote -v
5、上传文件、作业的流程
a、拉取远程仓库的最新内容
git pull origin3 master origin3是远程仓库
b、在homework目录下(cd homework/),寻找跟日期同名的文件夹(cd 2022-03-04-git作业/),在这下面创建你自己名字的同名文件夹(mkdir angel),然后将你写的代码文件复制到这下面来。
c、git add --all :添加文件到追踪暂存区
d、git commit -m “xxx” 提交本次修改到历史版本中
git commit -m "today" 提交本次修改到历史版本中,today可随意命名。
e、git push origin master :将历史修改到远程仓库 单纯拉取也需要push。
f、在页面上创建pull request ,等待远程仓库同意。
4、解决git冲突
git冲突:两个本地仓库同时修改文件夹会产生冲突。
分支:master主分支 每个都会在自己本地产生dev(develop)分支和master分支,在dev分支中修改代码,dev分支修改完成测试完成之后就合并到master分支,到master分支生效。
合并分支之后会有冲突产生(有两个角色同时修改了文件)。
1、首先找到并进入一个分支(master)。
Administrator@PC-201911211239 MINGW64 /d/hyrz (master)
git branch -v
2、新建分支并切换。
git checkout -b dev(切换到dev)
git branch -v
ls
touch aa 创建文件
git add --all添加文件到追踪暂存区
git commit -m "add aa"提交本次修改
git log
git checkout master 切换分支到maste
ls
git checkout dev
Administrator@PC-201911211239 MINGW64 /d/hyrz (master)
$ git merge dev合并dev分支到master(在master中进行)
** 解决冲突的两种方式**:自动解决 和人工解决。
自动解决:修改的地方内容不一样,
人工解决:同时修改一个地方的内容,自动解决不了,需要人工解决。
Git 冲突解决办法。
出现冲突:
Auto-merging learn_code/2021-11-23-python异常处理/01.python异常处理.py
CONFLICT冲突 (content): Merge conflict in learn_code/2021-11-23-python异常处理/01.python异常处理.py
自动合并失败 需要手动解决冲突
查看冲突所在的文件:
标红的位置就是冲突所在位置
用===========隔开的两部分只能留下一部分
删除后在提交。
版权归原作者 欢喜躲在眉梢里 所有, 如有侵权,请联系我们删除。