2021-04-16:git代码版本管理工具的使用及介绍,笔记

1617-卿同学

发表文章数:84

热门标签

, ,
首页 » Git » 正文

Merge: 把本地的代码上传到库上合并起来

Rebase:把库上的代码同步到本地

Git 版本管理工具

 

  Gerrit是一个建立在Git版本控制系统之上,基于Web的代码审查工具。

    Gerrit是一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。

    代码审核(Code Review)是软件研发质量保障机制中非常重要的一环,但在实际项目执行过程中,却因为种种原因被Delay甚至是忽略。在实践中,免费、开放源代码的代码审查软件Gerrit是一个很好的选择。

    它在传统的源码管理协作流程中强制性引入代码审核机制,通过人工代码审核和自动化代码验证过程,将不符合要求的代码屏蔽在代码库之外,确保核心代码多人校验、多人互备和自动化构建核验。

Gerrit适用性:几乎任何需要正式发布的项目都应当使用Gerrit来进行代码审查,如果Team中有新人,必须使用Gerrit确保代码质量。

Git里面的分布式的介绍

1.什么是分布式和集中式?

分布式:

在不同服务器上部署不同服务模块,然后通过远程协同使用不同服务器模块;这类似于司令官模式,军队里的司令官充当着发号指令,给不同军种分配不同任务的角色;有了司令官统一协调军种,一切行动听指挥,那就能打胜仗;如果没了司令官也能打仗吗?答案:能;只不过没有司令官发号施令,各军种士兵就容易当炮灰;三个关键词:司令官,各军种,打仗;

集中式:

在同一服务器(也称为中央服务器)中部署不同的服务器模块,有需要的时候则统一调用中央服务器中的服务模块;这类似于学校图书馆,图书馆承担着学生借书和还书等功能;当图书馆关闭之后,那么学生就无法再借书或还书了;所以集中的最大的缺点就是当中心服务器出现问题后,其他人的就无法工作了;三个关键词:图书馆,学生,借书或还书;

 

From <https://www.jianshu.com/p/8b03546a7487>

 

安装完成后,还需要最后一步设置,在命令行输入:

$ git config –global user.name “Your Name”
$ git config –global user.email “email@example.com”

 

From <https://www.liaoxuefeng.com/wiki/896043488029600/896067074338496>

 

 

创建一个仓库 git base

 

$ mkdir learngit

$ cd learngit

$ pwd

/Users/michael/learngit

 

From <https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304>

$ git init

Initialized empty Git repository in /Users/michael/learngit/.git/

 

From <https://www.liaoxuefeng.com/wiki/896043488029600/896827951938304>

 

此时此文件夹就变成了一个git 仓库

下载notepad++

Git add

Git commit -m “xxxx”

Git status  查看文件上传状态

Git diff 可以查看具体文件内部修改了什么东西

 

Git add 推送到版本库

Git log 可以查看每个版本改了什么

Git log –pretty=oneline 可以简化界面

 

git reset –hard +节点 就可以回退到上一个版本

如果你记得未来的版本号,就可以 git reset –hard + 未来的节点号

Cat + 查看文件

 

记不到版本号:git reflog 查看之前的每一条命令

工作区(Working Directory)

就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区:

版本库(Repository)

工作区有一个隐藏目录.git,这个不算工作区,而是Git的版本库。

Git的版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD

提交后,用git diff HEAD — readme.txt命令可以查看工作区和版本库里面最新版本的区别:

 

命令git checkout — readme.txt意思就是,把readme.txt文件在工作区的修改全部撤销,这里有两种情况:

一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;

一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态。

总之,就是让这个文件回到最近一次git commitgit add时的状态。

git checkout — file命令中的很重要,没有,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。

如果已经 git add到暂存区, 用命令git reset HEAD 可以把暂存区的修改撤销掉(unstage),重新放回工作区:

git reset命令既可以回退版本,也可以把暂存区的修改回退到工作区。当我们用HEAD时,表示最新的版本。

 

如果想删除已经git add , git commit 的文件:

删除本地文件:  rm test.txt

 

删除版本库当中的文件:

 

现在你有两个选择,一是确实要从版本库中删除该文件,那就用命令git rm删掉,并且git commit

 

删错了, 想要恢复 $ git checkout — test.txt

 

小结

要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git

关联后,使用命令git push -u origin master第一次推送master分支的所有内容;

此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;

分布式版本系统的最大好处之一是在本地工作完全不需要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时候是拒绝干活的!当有网络的时候,再把本地提交推送一下就完成了同步,真是太方便了!

 

分支:

分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

小结

Git鼓励大量使用分支:

查看分支:git branch

创建分支:git branch

切换分支:git checkout 或者git switch

创建+切换分支:git checkout -b 或者git switch -c

合并某分支到当前分支:git merge

删除分支:git branch -d

 

并不是你不想提交,而是工作只进行到一半,还没法提交,预计完成还需1天时间。但是,必须在两个小时内修复该bug,怎么办?

幸好,Git还提供了一个stash功能,可以把当前工作现场“储藏”起来,等以后恢复现场后继续工作:

 

From <https://www.liaoxuefeng.com/wiki/896043488029600/900388704535136>

未经允许不得转载:作者:1617-卿同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《2021-04-16:git代码版本管理工具的使用及介绍,笔记》 发布于2021-04-16

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录