Top

第十二章 git

一、面试题及参考答案

1、你在公司如何做的协同开发?

  基于git做的协同开发。 

2、git 常见命令。

  git clone 克隆指定仓库

  git status 查看当前仓库状态

  git diff 比较版本的区别

  git log 查看git操作日志

  git reset 回溯历史版本

  git add 将文件添加到暂存区

  git commit 将文件提交到版本库

  git checkout 切换到指定分支

  git rm 删除指定文件

3、简述以下git中stash命令作用以及相关其他命令。

 

4、git中merge和rebase命令的区别。

  git merge和git rebase 这两个命令都能达到两分支合并的效果。

  git merge 的commit 树看起来很乱,但是时间线是顺着来的。

  git rebase使commit 树看起来很漂亮,但是它把时间线打乱了。

5、公司如何基于git做的协同开发?

  版本库的两条主要分支:Master和Develop。前者用于正式发布,后者用于日常开发。

  主分支只用来分布重大版本,日常开发应该在另一条分支上完成。

  除了常设分支以外,还有一些临时性分支,用于应对一些特定目的的版本开发。临时性分支主要有三种:

    feature:特性分支。 从dev分支分离而来,用于开发项目功能。
    hotfixes:紧急分支。当产品已经发布,发现紧急bug,创建hotfixes分支进行紧急修复,完成后合并到master和dev。
    release:预发布分支。每次发布有一个分支。从testing分离而来,用于生成预发布产品和回归测试。

6、如何基于git实现代码review?

 

7、git如何实现v1.0、v2.0等版本的管理?

 

8、什么是gitlab?

 

9、github和gitlab的区别?

  GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发,因为你总不可能把团队内部的智慧总放在别人的服务器上吧?简单来说可把GitLab看作个人版的GitHub。

10、如何为github上牛逼的开源项目贡献代码?

 

 

11、git中.gitignore文件的作用?

  我们在往github上传代码的时候,有些文件不想上传时,就可以将该文件写在.gitignore中,当push代码时,就不会被上传,以下是忽略文件原则:

  - 忽略操作系统自动生成的文件,比如缩略图等;
  - 忽略编译生成的中间文件、可执行文件等,也就是如果一个文件是通过另一个文件自动生成的,那自动生成的文件就没必要放进版本库,比如Java编译产生的.class文件;
  - 忽略你自己的带有敏感信息的配置文件,比如存放口令的配置文件;

  注意:.gitignore只能忽略那些原来没有被track的文件,若某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

  

posted @ 2019-02-10 11:40  勇敢的巨蟹座  阅读(53)  评论(0)    收藏  举报