相关疑难解决方法(0)

错误:无法使用rebase:您有未分阶段的更改

我已经开始与一些项目的朋友合作,他们使用heroku git存储库.

我几天前克隆了存储库,他们已经做了一些更改,所以我试图获取最新的更新

我运行了git pull --rebase这里所说的命令(这是正确的方法吗?):https://devcenter.heroku.com/articles/sharing#merging-code-changes

我收到以下错误:

$ git pull --rebase
Cannot pull with rebase: You have unstaged changes.
Please commit or stash them.
Run Code Online (Sandbox Code Playgroud)

我的猜测是我搞乱了代码,现在它要么我要么提交要么丢弃(存储意味着什么?)这些变化.这是发生了什么?如果是这种情况,我想放弃我可能做出的任何更改,只是从git存储库中获取更新的代码.

知道我能做什么吗?

git pull heroku

123
推荐指数
8
解决办法
18万
查看次数

git rebase -i --retain-empty-commit

默认情况下,当你使用git rebase -i它时注释掉空提交,我必须取消注释它们(它们对我有帮助).是否有一个rebase命令选项可以防止这种不必要的假设,即我不想保留它们?

git git-rebase

7
推荐指数
1
解决办法
1255
查看次数

无需交互式变基即可更改 git 提交消息

我知道有两种方法可以更改 git 中的提交消息。

第一个是git amend,它仅适用于最新的提交。由于我希望能够直接更改较旧的提交消息,因此这不是我想要的。

第二个是交互式变基,例如本答案中描述的,它也可以更改旧提交的提交消息。程序是使用

git rebase -i HEAD~n
Run Code Online (Sandbox Code Playgroud)

我必须手动计算n我的具体情况有多大,然后滚动浏览所有这些提交的列表并将一个提交从 更改为pickreword最后键入新的提交消息并强制推送。

老实说,虽然这可行,但这样做非常复杂且乏味。所以我的问题是,是否有一种更易于使用的选项(可能以别名的形式),可以一步自动执行此过程?

理想情况下,我想要一个像这样的命令:

git reword <hash> -m "New commit message"
Run Code Online (Sandbox Code Playgroud)

然后用力推动。这可能吗?

编辑:我想摆脱交互性,因为我想以编程方式自动化程序中的一些 git 命令。在此过程中必须手动与 git 交互,这违背了这种自动化的目的。

git git-commit

4
推荐指数
1
解决办法
1439
查看次数

标签 统计

git ×3

git-commit ×1

git-rebase ×1

heroku ×1

pull ×1