• Tags
  •         
  • www.breakyizhan.com
  •    

    说明新建一个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 推送到远程仓库.

     
    转载请保留页面地址:https://www.breakyizhan.com/git/5035.html