Git的常见问题以及面试题汇总

作者: Arvin Chen 分类: Git 发布时间: 2018-08-01 15:05

说明新建一个GIT功能分支的步骤,提供每个步骤的指令,并对指令进行说明。

答:Git branch name     创建名字为name的branch

Git checkout xxx_dev    切换到名字为xxx_dev的分支

Git pull    从远程分支拉取代码到本地分支

Git checkout -b main_furture_xxx    创建并切换到main_furture_xxx

Git push origin main_furture_xxx    执行推送的操作,完成本地分支向远程分支的同步

 

说明GIT合并的两种方法以及区别。

答:Git代码合并有两种:Git Merge 和 Git ReBase

Git Merge:这种合并方式是将两个分支的历史合并到一起,现在的分支不会被更改,它会比对双方不同的文件缓存下来,生成一个commit,去push。

Git ReBase:这种合并方法通常被称为“衍合”。他是提交修改历史,比对双方的commit,然后找出不同的去缓存,然后去push,修改commit历史。

 

如何查看文件的提交历史和分支的提交历史。

答:使用git log查看文件提交历史

Git log filename

使用git log查看分支提交历史

Git log branch file

 

我们在本地工程常会修改一些配置文件,这些文件不需要被提交,而我们又不想每次执行git status时都让这些文件显示出来,我们该如何操作?

答:在Git工作区的跟目录下创建一个特殊的.gitignore文件,然后把忽略的文件名编辑进去,Git就会自动忽略这些文件。

 

git提交代码时候写错commit信息后,如何重新设置commit信息?

答:可以通过Git commit --amend 来对本次commit进行修改。

 

当GIT出现如下情况时,该如何处理?

your-branch-is-ahead-of-origin-master-by-3-commits

答:

Git commit

Git pull

Git push

 

描述清楚冲突产生的原因?git跟其他版本控制器有啥区别?

答:

很多命令都可能出现冲突。但冲突的直接来源是merge和patch(应用补丁)。其它的命令是执行这两个操作导致冲突。

rebase:重新设置基准,然后应用补丁。

pull:会自动merge

repo sync:会自动rebase

cherry-pick:会应用补丁

没有更新代码就进行提交,覆盖别人的代码。

区别:

Git比svn快,而且更加的流畅。

Git在本地就可以使用,可以随便保存各种历史记录,不用担心污染服务器。

Git在branch和branch之间切换非常简单。

Git没有被lock不能commit 的情。

人为制造Git冲突文件成功1分,成功解决冲突3分,代码还原4分,保证原始代码正确非常重要

可参考文章: git冲突产生的原因,git冲突产生之后的标记以及git冲突的解决

假如你现在的分支为main_dev,并在这个分支上修复了一个bug,但是在main_zh_test分支也发现了同样的一个bug,如果不用copy代码的方式你如何把main_dev修复这个bug提交的代码合并到main_zh_test分支上,请贴出你的git操作指令和指令的含义(合并时没有冲突)?

1、在main_dev上通过gitk/gitlog,使用bugid搜索提交的commit id
2、使用git checkout main_zh_test 切换分支
3、使用git cherry-pick commitid 将对bug的修改批量移植到该分支上
4、git commit 提交到本地
5、git push 推送到远程仓库.

  •   本文标题:Git的常见问题以及面试题汇总 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/git/5035.html

    "Git的常见问题以及面试题汇总"的笔记

    • Break易站

      2018年9月15日 下午7:20

      Git提交代码的步骤

      git clone (这个是你新建本地git仓库,如已有可忽略此步)
      git pull    取回远程主机某个分支的更新,再与本地的指定分支合并。
      git status  查看当前状态
      git add + 文件
      git add -u + 路径:将修改过的被跟踪代码提交缓存
      git add -A + 路径: 将修改过的未被跟踪的代码提交至缓存
      git add -u com/breakyizhan/src
      将 com/breakyizhan/src 目录下被跟踪的已修改过的代码提交到缓存中
      git commit -m "修复XXbug"   推送修改到本地git库中
      git push    把当前提交到git本地仓库的代码推送到远程主机的某个远程分之上
    扫描二维码添加微信 
  • ,领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘优惠券!添加微信后,分享淘宝选中的机械键盘给淘宝机器人即可领取!
    支持我们,就用微信淘宝!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读