说明新建一个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
扫描二维码添加微信 
  • ,每次淘宝领取淘宝优惠券,淘宝购物更优惠。现在添加微信,还可以领取机械键盘50元优惠券!添加微信后回复机械键盘即可领取!
    支持我们,就用微信淘宝!