使用git合并某一个版本的某一个分支

场景:两个分支,一个是v1.0,另外一个v2.0

需求:将v2.0的某个功能迁移到v1.0

功能:在0000005版本到00000010版本

git的操作:

$ git checkout v1.0

$ git cherry-pick 0000005^..00000010

$ git push

 

解释:

1、Git从1.7.2版本开始支持批量cherry-pick,就是一次可以cherry-pick一个区间的commit。
git cherry-pick <start-commit-id>..<end-commit-id>
git cherry-pick <start-commit-id>^..<end-commit-id>
前者表示把<start-commit-id>到<end-commit-id>之间(左开右闭,不包含start-commit-id)的提交cherry-pick到当前分支;
后者有"^"标志的表示把<start-commit-id>到<end-commit-id>之间(闭区间,包含start-commit-id)的提交cherry-pick到当前分支。
其中,<start-commit-id>到<end-commit-id>只需要commit-id的前6位即可,并且<start-commit-id>在时间上必须早于<end-commit-id>
 

 

Git撤销某次合并操作通常涉及到使用`git reset`命令,特别是当你误将某个分支的内容合并到主分支(master或类似命名)上时。以下是一般的步骤: 1. **确定你想撤销合并的提交**:首先,你需要找到你要撤销的那次合并的commit ID。你可以通过运行`git log`或者`git reflog`来查看合并的历史记录。 2. **检查工作目录**:确认当前工作目录是否已经包含了你想要保留的新更改。如果你还没有切换到其他分支,那么直接操作不会有影响。 3. **回退至合并点之前的状态**:使用`git reset --soft <commit_id>`命令,这里 `<commit_id>`是你要回到的位置,它通常是合并之前的提交。这会将HEAD指针和所有未提交的修改都移动到指定的提交,但是不会丢弃实际的提交。 4. **取消暂存合并结果**:如果合并后的更改已经被暂存,可以使用`git stash`命令将其暂存起来,以防丢失。然后用`git checkout .`恢复文件到合并前的状态。 5. **清理历史记录**:如果你想从历史记录中完全移除这次合并,可以使用`git revert --no-commit <commit_id>`创建一个新的提交,撤销那一次的更改,但这个操作需要小心,因为一旦完成就无法恢复。 6. **最后提交并推送**:如果你想保存对撤销合并的操作,可以使用`git commit -m "Revert merge"`提交这次撤销。如果是在远程仓库,记得使用`git push origin --force`强制推送到分支,注意这可能会影响其他人的工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值