git
版本控制工具
1、解决的问题:
(1)解决代码丢失问题
(2)版本持续变化,需要对多个版本进行管理
(3)方便多人协同开发
2、环境centos7
3、
(1)git:版本控制工具,解决上面三个问题。(同类工具:SVN,hg,vsc……);本质上不依赖第三方网站,但是配合github和码云使用效果更佳。
(2)github:全球最大的同性社交网站,source forage,google code,gitlab,码云,码市
步骤:创建项目
克隆
把服务器上的醒目克隆到本地:git clone git地址
cd test_git
把代码放进去
告诉git工具哪些文件是需要版本控制的:git add 文件名
把代码的改动提交到版本控制中(提交到本地而不是提交到服务器上):Git commit.
commit. 提交的时候写一个比较有描述性的日志信息,(如:新增文件名)
git push :把本地的修改推送到服务器上
二、进阶:
git pull:把服务器上最新的代码拉取到本地
git diff :罗列出当前文件有哪些代码的详细修改内容
git status:查看哪些代码发生修改,不包含详细信息
git log:查看修改的版本日志
2、配置免密码提交
忽略不需要的文件:
touch main.o
vim .gitignore (.开头的是隐藏文件)
加上 .o:即可忽略.o文件
3、版本回退
git log:查看版本信息,详细信息
git log --pretty=oneline:每一个版本显示一行(版本号
gti reset --hard 版本号:回退到指定版本
git reflog:记录了之前git找本地上的核心操作,来找git log看不到的内容
4、分支的概念
背景:100来号人去维护同一份代码,假设所有人的代码都是在一个服务器上(这个代码在服务器上只有一份),每个人都会把自己的改动提交到服务器的这一份代码上:一个人的工作出现问题,整个项目都会出现问题。
分支就是为了解决这个问题:
程序员在开发代码的时候,基于服务器上的这一份代码,创建一个分支(对服务器上的代码拷贝了一份)。程序员自己创建的这个分支,称为开发分支(dev)。服务器上原来的这份代码称为主线(master)。后续程序员把代码提交到dev上,不会对master进行任何影响。直到代码开发完,测试完,再把dev分支的代码合并到master分支上。让多人团队协同开发。
git branch:查看当前有多少分支,完成对分支的操作,如果不加其他参数就是查看当前有哪些其他分支
git branch 分支名:创建一个指定名字的分支(再本地创建)
git checkout 分支名:切换分支,改动该分支,不会影响master
git checkout -b 分支名:创建并且切换分支
merge:合并分支的代码 合并时的重要问题为冲突
冲突:同一个位置的代码,在不同的分支中都被进行了修改,此时尝试merge两个分支,就会产生冲突。
git commit -a:强制提交
5、实际开发中实际的应用场景:
场景一:开发一个功能,创建dev分支,在这个dev分支上开始开发。卡发到一半的时候,master上发现存在一个bug,需要立即修复。如果此时的dev分支是多人共用,
git stash:能够临时修改当前的修改内容,让我们去及时的处理其他的分支的情况
git stash list:可以查看身份信息(随时存储,随时恢复)
场景二:假设你在开发一个需求,马上要开发完了,产品经理说这个需求不做了。此时修改的这些代码,不需要合并到master中的分支中的,用过的分支可以删除掉
git branch -D:强制删除一个没有merge过的分支
场景三:多人合并开发:
1、直接基于master来开发(实际工作中,严格禁止的)
pull
merge/处理冲突
commit
push
2、基于共同的dev来进行开发:
创建关系时,关联上服务器的关联关系
git checkout master
标签管理:
需要对代码进行发布版本,使用标签机制告诉我们哪份代码是需要发布的,一般不会直接发布master上的新代码
git tag【标签名】 创建标签的:不加参数,查看都有哪些
浙公网安备 33010602011771号