Git面试题
1、git在推送代码到仓库前,应该先拉取最新的资源下来,以避免发生冲突。
推送到master分支下:
git push origin master
origin
为remote的远程代码仓库路径,master
为推送到的分支。
拉去目标分支的资源:
git pull origin master
origin
为remote的远程代码仓库路径,master
为拉取的目标分支。
2、新建分支命令
git branch 分支名
3、切换分支
git checkout 分支名
4、强制切换分支
git checkout -f develop
5、git fetch 与 git pull,以及git merge
git fetch
:从远端抓取最新到本地,由用户检查无误后再决定是否合并到工作本地分支中。
git merge
:分支合并,将其他分支的内容合并到当前分支。
git pull
:是将最新内容拉取下来后直接合并,即:git pull = git fetch+git merge
,这样可能会产生冲突,需要手动解决。
6、同一分支代码冲突
假设你在一个名为cool_feature的git分支上commit了你最新的改动。但是当你试图合并到主分支时发现主分支在你的分支生成之后有了新的变化,因此提示:“fatal: Not possible to fast-forward, aborting.”。你的目标还是将你的分支合并到主分支,请问你会怎么操作,以及每种操作下可能遇到的问题,以及如何解决?(有很多种方法,可以给出一种,也可以给出多种)
执行git pull origin cool_feature --rebase,如果没有冲突就正常更新然后提交代码;如果有冲突,就按照提示解决冲突。