git_拉取指定的远程分支/强行拉取远程分支覆盖当前本地/合并/冲突(git fetch/merge没看到效果?)
文章目录
git fetch
参考
git help fetch
- merge - Git pull a certain branch from GitHub - Stack Overflow
- version control - How do I force “git pull” to overwrite local files? - Stack Overflow
process
- 直接使用
git pull origin otherBranch
往往会失败(经常提示branch 分叉了) git pull
包含两个过程(git fetch &git merge)- 可见,当您想通过
git pull
来拉取仅存在于远程(譬如github上创建的分支),那么很可能会因为进度和较大的差异而无法合并 - git fetch 一般没问题,问题经常处在git merge 阶段
- 可见,当您想通过
- 然而,有时候,我们仅仅是向单纯的把远程仓库作为一个独立的分分支来使用
- 可以在本地新创建一个分支,该分支和仅存在于远程的那个分支名一致(也可以不一致),但建议一致,然后确保当前分支处于干净的状态,并且进入到另一个新建分支,将远程仓库的独有分支拉采用强制下来.
- 我们可以借助可视化工具来轻松完成上述工作
- 譬如IDEA:
- 执行完以后,通过命令行可见:
git status 看不到足够的信息?
当你执行完 git fetch origin/otherBranch 之后并且再main分支手动执行git merge 后有,检查git status 未必会看到想要的信息
(可能只是一个指针信息)
图形化查看git log
git log --all
或许可以帮你看到没有合并好的提交信息
而使用git log --all --decorate --oneline --graph
可以以图型化的形式更加直观的看到分支(提交)的走向:
你可以清楚的看到分叉发生的地方,以及其与主分支的合并情况
您还可以使用git log --all --decorate --graph
查看更加详细的提交信息树
正式合并分支
git merge origin/otherBranch
合并过程很可能会遇到冲突,这时候就开始处理冲突
- add fixed conflicts`
- commit it!
合并同事分支到当前分支
理想的情况(例子):同事的分支的提交处于领先状态
直接将其pull 会这样:
手动fetch 指定的远程分支
如果你的修改和同时的修改不产生冲突,那么这种情况下,可以先fetch
检查所有分支的情况图:
发现没有如期合并
尝试手动合并分支
重新检查分支Graph
查询git status
强行拉取远程分支覆盖当前本地(by reset)
- version control - How do I force “git pull” to overwrite local files? - Stack Overflow
- 当我们要自动部署项目时,这个场合或许需要这么做(因为,某些项目在启动运行后,会产生一些中间文件,这些文件可能会阻碍常规的pull origin branchName 操作)
- 主要手段是执行
git reset --hard origin branchName
,来用远程分支覆盖当前(服务器)项目运行所处分支
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了