面试官千万别再被忽悠了(Git)

724 阅读5分钟

从什么维度考量一个程序员的实际工作经验

  • 专业的技术知识点
  • 工作流程
  • 基础知识掌握程度
  • 各种框架的熟练程度
  • Git使用

我们面试官无论从任何一个维度考察程序员的工作能力或工作经验,都有可能被忽悠。原因是市面有很多的培训机构刚出来的学生,培训技能是次要培训忽悠是目的,不乏有很些(没有良心的教育机构)交了钱就是让你去怎么写简历,背面试题,忽悠面试官。

今天教面试官一招鲜吃遍天的骚操作 ——— 从GIT开始

git使用能测出应聘者哪些点

  • 合作开发能力
  • 命令行使用能力
  • 写代码的熟练程度
  • 冲突解决方法

初级程序员(1~3年)基础使用命令

1-3年的程序员我建议你把下面这写代码复制贴在你的电脑桌面上去

 
 
1、创建新项目在本地创建文件夹,在本路径中打开命令行工具,初始化 git init

2、克隆新项目 git clone -b 分支名(Dev)+ 仓库地址(https//:www.gitee.****.git)
解释一下这个命令:-b表示要从分支下载,Dev就是具体的某个分支的名称,


3、添加所有代码:git add -A

4、拉取线上代码与本地仓库代码进行合并:git pull origin Dev

5、提交本地代码:git commit -m '注释内容'

6、上传到线上与线上代码合并:git push origin Dev

1)git status 查看仓库状态
2)git log 查看提交记录
3)git remote add origin 仓库地址
4)git init初始化本地仓库
5) git rm -r --cache 文件/文件夹 删除远程文件或文件夹

每次修改过代码  先拉取献上最新代码》提交本地代码》最后提交到远程代码库

git使用是你对开发的敬畏,当你一写代码就冲突,你写的那点代码根本不够别人给你解决冲突当误工夫,所以请学好git不要给别人找麻烦

--------以下为Git高级使用-------

1、Git分支管理

项目分支就是版本库的一个副本,有了分支后可以把你的工作从开发主线上分离开来, 以免影响开发主线。

(1)创建分支

git branch dev(分支名) //或 git -b dev 

(2)切换分支

git checkout dev //

(3)删除分支:当一个分支完成了使命的时候,一般我们会把它删除掉。

# -d 命令是删除的意思,delete
$ git branch -d dev

(4)查看所有的分支

$ git branch -v
  dev    eba9a31 update the a.txt by dev
* master d47fbfb update the a.txt by master;
带*的代表是当前的分支。

(5)合并分支: 就是把其他分支的代码合并到当前的分支中。git会自动将当前分支和要合并的分支找到共同的基点,然后将当前分支的所有变化和要合并分支的变化进行三方合并,并产生一个新的提交,此次提交有两个父提交。

# 进入主分支
$ git checkout master

# 合并dev分支
$ git merge dev

2、合并分支

  • 合并分支前,确保当前分支已经提交状态

  • 快速合并: 如果两个分支之间没有分叉,要被合并的分支提交比当前分支更新,那么只是HEAD指针的移动。

  • 冲突解决: 如果合并的两个分支有分叉,那么自动添加一个新的提交,如果有冲突需要先解决完冲突然后再提交。

解决冲突的办法:就是移除代码中的特殊符号,留下自己想要的代码。

比如冲突文件如下:

    ssss
    <<<<<<< HEAD
    22222222
    33333333
    44444444
    =======
    devdevdevdev
    >>>>>>> dev

解决方案:

(1)移除上面的 " <<<<<<< HEAD " 和 " ======= >>>>>>> "

(2)dev然后留下自己想要的代码就完成了冲突解决

(3)执行git add 和git commit 一操作就可以了。

完整的解决冲突的流程:

# 切换到主分支
$ git checkout master

# 把dev分支的内容合并到主分支
$ git merge dev

# 如果产生冲突后,先修改文件,去掉冲突的符号。

# 最后提交修改到仓库
$ git add .
$ git commit -m '合并冲突'

3、Git tag 标签

Git 可以给历史中的某一个提交打上标签。 比较有代表性的版本使用这个功能来标记发布结点(v1.0.0 / 2.0.0)。

(1)列出标签(默认方法):

列出已有的版本标签
命令 :

$ git tag
v1.0.1
v2.0.1
......
这个命令默认是以字母顺序列出tag标签;

(2)也可以自定义查找:

如果只对 1.8.5 系列感兴趣,可以运行以下命令:
    $ git tag -l 'v1.8.5*'
    v1.8.5
    v1.8.5-rc0
    v1.8.5-rc1
    v1.8.5-rc2
    v1.8.5-rc3
    v1.8.5.1
    v1.8.5.2
    v1.8.5.3
    v1.8.5.4
    v1.8.5.5

(3)创建 git tag标签

Git 使用两种主要类型的标签:
轻量标签(lightweight)与附注标签(annotated)。 一个轻量标签很像一个不会改变的分支 - 它只是一个特定提交的引用。

(4)注标签

在 Git 中创建一个附注标签是很简单的。 最简单的方式是当你在运行 tag 命令时指定 -a 选项:
$ git tag -a v1.4 -m 'my version 1.4'
$ git tag
v0.1
v1.3
v1.4

-m 选项指定了一条将会存储在标签中的信息。

通过使用git show命令可以看到标签信息与对应的提交信息:

$ git show v1.4
tag v1.4
Tagger: Ben Straub <ben@straub.cc>
Date:   Sat May 3 20:19:12 2014 -0700
my version 1.4
commit ca82a6dff817ec66f44342007202690a93763949
Author: Scott Chacon <origin@cshans.cn>
Date:   Mon Mar 17 21:52:11 2020 -0700
  changed the version number

输出显示了打标签者的信息、打标签的日期时间、附注信息,然后显示具体的提交信息。 轻量标签 另一种给提交打标签的方式是使用轻量标签。 轻量标签本质上是将提交校验和存储到一个文件中 - 没有保存任 何其他信息。 创建轻量标签,不需要使用 -a、-s 或 -m 选项,只需要提供标签名字:

$ git tag v1.4-lw
$ git tag
v0.1
v1.3
v1.4
v1.4-lw
v1.5

(5)后期打标签 你也可以对过去的提交打标签。

$ git tag -a v1.2 9fceb02

(6)检出标签 在 Git 中你并不能真的检出一个标签,因为它们并不能像分支一样来回移动。 如果你想要工作目录与仓库中特定 的标签版本完全一样,可以使用git checkout -b [branchname] [tagname]在特定的标签上创建一个 新分支:

$ git checkout -b version2 v2.0.0
Switched to a new branch 'version2'

当然,如果在这之后又进行了一次提交,version2 分支会因为改动向前移动了,那么 version2 分支就会和 v2.0.0 标签稍微有些不同,这时就应该当心了。