[每周一更]-(第69期):特殊及面试的GIT问题解析

整合代码使用过程的问题,以及面试遇到的细节,汇总一些常用命令的对比解释和对比;

1、fetch和pull区别

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

2、可以作为一套面试及、如何处理一个或一系列相连的分支feature提交的commits 合并到master分支;

(1)合并非master中某个commit提交到master分支中,用git cherry-pick命令,

git checkout master

git cherry-pick 22ecb3(提交记录 git log 查看)

也可以合并一系列:

git cherry-pick A...B (提交 A 必须早于提交 B)

git cherry-pick A^...B (包含A当前分支)

(2)当需要合并一系列commit时,就需要用到rebase

首先需要基于feature创建一个新的分支,并指明新分支的最后一个commit:

git checkout -b newbranch 22ecb3

然后,rebase这个新分支的commit到master(--ontomaster)。76cada^ 指明你想从哪个特定的commit开始。

git rebase --onto master 11cada^

得到的结果就是feature分支的commit 22ecb3 ~ 11cada 都被合并到了master分支。

回退上个版本:git reset --hard HEAD^

3、当master分支合并了其他分支内容,想去除?(很棒的方式)

(1) 先查看提交记录, git log --pretty=oneline

(2)用【git reset】回到出错版本的上一个版本 :git reset --hard 3c2af5a7(表示错误前的一个版本)

(3)用【git cherry-pick】把出错版本后面的commit合并进去;git cherry-pick 9dba07f4^...32aba548

#出错版本后的第一个commit直至最新commit或者使用单次合并 git cherry-pick 9dba07f4

#将某次commit的更改应用到当前版本(将出错 cmmit 之后别人提交的代码合并到当前正常代码分支上)

栗子:git cherry-pick 396c2fd9^...aafc97e3

(4)如果在cherry-pick 的过程中出现了冲突 ,在处理冲突后,使用 git cherry-pick --continue

(5)继续处理下一个分支 如果想中途退出cherry-pick,使用 git cherry-pick --abort

(6)合并冲突后,使用强制推送把旧分支进行覆盖 :git push origin HEAD:commitName(当前版本名) --force

git push origin HEAD --force #强制提交

查看更多

相关推荐
汀、人工智能1 小时前
报错error: RPC failed,curl 16 Error in the HTTP2 framing layer解决方法
网络·git·网络协议·rpc
Eoneanyna2 小时前
QT设置git仓库
开发语言·git·qt
+码农快讯+2 小时前
Git入门学习(1)
git·学习·elasticsearch
VaporGas6 小时前
idea集成和使用Git指南
java·git·intellij-idea
无名之逆7 小时前
计算机专业的就业方向
java·开发语言·c++·人工智能·git·考研·面试
大广-全栈开发7 小时前
centos 7 安装gitlab
linux·git·centos
zhangphil7 小时前
git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
git
Tammyhlf8 小时前
新电脑工作流搭建记录-前端篇
git
6230_10 小时前
git使用“保姆级”教程1——简介及配置项设置
前端·git·学习·html·web3·学习方法·改行学it
为祖国添砖爪哇11 小时前
【Git原理与使用】多人协作与开发模型(2)
git