几天前,我错误地将dev分支合并到master并进行了大量提交。 我暂时没有使用master的旧提交(在dev合并之前)创建一个新分支,名为“ master_old”,并将其用于部署。
say master has commits 1,2,3,4,5 (3,4,5 are unwanted ones from dev)
master_old has commits 1,2,6,7,8
I want the master to have 1,2,6,7,8
现在我想切换回master,但是我希望master是当前master_old的精确副本(开发合并中没有更改)
如何将master重置为master_old的代码?
答案 0 :(得分:2)
让我们保持简单:
const Discord = require('discord.js');
const GoogleImages = require('google-images');
module.exports = {
name: 'pic',
description: 'Sends A Picture Depending On Arguments',
async run(client, message, args, cseid, apikeygoogle, prefix) {
const client2 = new GoogleImages(cseid, apikeygoogle)
var term = args.join(" ")
if (term) {
client2.search(`${term}`)
.then(images => {
const randomIndex = Math.floor(Math.random() * images.length);
message.channel.send({ files: [images[randomIndex].url] });
})
.catch((err) => {
message.channel.send('Error')
console.log(err)
})
}
}
}
答案 1 :(得分:1)
master
的开头。 3
可以执行命令来退回2
提交。运行此命令时,您必须处于master
上。git reset --soft HEAD~3
git stash
master_old
上时,现在使用master
进行基准化。
git rebase master_old
git stash pop
1, 2, 6, 7, 8
答案 2 :(得分:0)
首先,您需要确定是要重写master分支的历史记录,还是添加新的提交以使master状态保持应有的状态。如果您发布了master分支(已推送至原始分支),并且可能有人拉了master分支,则您不应该重写历史记录。
如果可以重写历史记录,请遵循RomainValeri的回答。
要添加新的提交而不是重写历史记录,请执行以下操作:
git checkout master
git reset master_old .
git commit
说明:命令git reset master_old。使用master_old处的提交状态加载索引(暂存区)。然后,当您提交时,会使用该索引状态将新的提交添加到master。
Master现在看起来像这样:1,2,3,4,5,9,其中commit 9撤消3,4,5并添加对6,7,8的更改