Git 问题集合

Git 学习总结

整理自己学习git问题

1.git fetch 拉取远程指定分支,但不合并

默认克隆,会跟踪origin(远程仓库名称) master(默认远程仓库起始分支)

在这里插入图片描述
2.git pull = git fetch + git merge
使用git pull 默认会三方合并,形成C5新的快照通常叫做merge commit
在这里插入图片描述

3.git rebase 变基
将我的版本my branch 所有修改 移动到 某分支;
将my branch 所有修改,放到master重播
在这里插入图片描述
假如修改了同一个文件,冲突是必不可免的;

实例演示:

	master分支 和 feature/增加入库同步标示分支

在这里插入图片描述
当前feature/增加入库同步标示分支git log
在这里插入图片描述

1.我先git checkout bugfix/修改包裹号逻辑分支上
2.git rebase master ,将当前分支的修改 变基(我自己叫做融合,或者重播)到master分支上去

bugfix分支,rebase结果
变基后,bugfix分支已经与master分支融合

3.git checkout master
4.git merge bugfix/我的分支名称,因为bugfix已经与master分支融合过,
并且解决过冲突,那么bugfix 与 master分支将会进行快速合并,形成下图分支,masrer分支变基完成;

master分支,rebase结果

可以看到我分支的修改,已经同步到master分支上了;
而且没有丑陋的merge branch commit记录

rebase 与 merge 的区别:两则达到的最终效果其实是一致的,但是两者形成的历史记录不同;
merge会有三方合并记录,但rebase不会有,rabase相当于融合;

rebase提供解决冲突的方法:
1.跟merge一样解决,然后git add 标示已解决冲突
2.git rebase --continue 标示继续变基,解决完成
3.如果不想要这次rabase,可以使用git rebase --abort 放弃这次变基操作,回到rebase之前;

4.git reset --hard HEAD

--hard 重设索引和工作目录,丢弃到指定的log,HEAD标示最新的,HEAD^上个版本,git log,找到指定commit记录,回到指定版本

5.git fetch origin -p -P
与远程分支对齐

6.删除 除master以外的分支全部删除

git branch | grep -v 'master' | xargs git branch -D

7.删除已经提交到远程仓库中的文件

git filter-branch --index-filter “git rm -rf --cached --ignore-unmatch logs/service/service.log” HEAD

git push origin --force --all

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值