Git小记

与主仓合并


思想:创建新的分支 —— 与主仓同步 —— 加入代码
# 添加MindSpore主仓master分支
git remote add upstream https://gitee.com/mindspore/mindspore.git -t master

# 拉取MindSpore主仓master分支至本地
git fetch upstream

# 切换至Op1分支
git checkout Op1

# 本地Op1分支rebase MindSpore主仓master分支
git rebase upstream/master

# 可能需要解冲突

# 检查本地代码状态与commit信息一切正常
git status
git log

# push本地Op1分支至Op1远程分支
git push -f

在切换分支之后,添加相应文件 ,并push到相应分支中

git上传文件:先创建仓库,再上传文件
git remote add origin https://... /仓库名.git   //后面改为你自己刚复制的仓库地址

git clone https://... /仓库名.git


//push操作从这一步开始
git add .	//添加当前目录下的所有文件到

git commit -m '数据结构代码'	//单引号内的内容为提交时的备注信息

git push origin master //master是默认分支名,这里可以根据自己需要进行修改

一些错误情况

$ git rebase upstream/master
First, rewinding head to replay your work on top of it...
Applying: ApplyPowerSign

//解决方案
git fetch upstream
git reset --hard upstream/master
$ git rebase upstream/master
error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.

//解决方案
git stash
git clean -d -fx
git fetch upstream
git reset --hard upstream/master
//创建新分支
git branch dev //创建dev分支
git checkout dev //切换至dev分支

Merge和Rebase区别

merge 和 rebase 都是合并两个分支的操作,都是 checkout 到某个分支上,然后把别的分支合并到该分支。(操作谁,谁不变)
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用场景

  1. 当我们在分支 future 上添加新功能时,直接在主分支 master 上, merge 一下 future 就可以把新功能加上了。
  2. 当我们在 future 上开发,此时有人改动了 master 主分支,要与主分支同步,在 future 分支上 rebase master 一下这样我们自己开发的几个 commits 就一直处在分支最后(一个分支只有一个 commits 操作 ,使用rebase)。
  3. 切记:不要在公共分支 master 上 Rebase !!! rebase操作之后相当于篡改历史,回退到之前操作十分麻烦

总结

1.公共分支上选择 merge (将新功能整合到 master 上)
2.功能分支上选择 rebase主分支 (和公共分支同步,把自己的提交顶到最后)
3.功能分支选择 merge 的话,如果不介意别人的操作放在自己操作前面的话也可以
4.在公共分支上不能 rebase 任何分支
5.本地和远端对应同一个 master 分支,优先使用 rebase 而不是 merge
例:本地master 和远程 master 是两个不同的分支

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值