相关疑难解决方法(0)

如何修改现有的,未删除的提交?

我在提交消息中写了错误的东西.或者,我忘了包含一些文件.

如何更改提交消息/文件?提交尚未被推送.

git git-amend git-commit git-rewrite-history

7669
推荐指数
27
解决办法
246万
查看次数

如何正确强制推送Git?

我已经设置了一个远程非裸"主"仓库并将其克隆到我的电脑上.我做了一些本地更改,更新了我的本地存储库,并将更改推送回我的远程仓库.到目前为止,情况还不错.

现在,我不得不改变远程仓库中的东西.然后我在当地的回购中改变了一些东西.我意识到不需要改变远程仓库.所以我尝试git push从我的本地仓库到我的远程仓库,但我收到的错误如下:

为防止您丢失历史记录,拒绝非快进更新在再次推送之前合并远程更改.有关git push --help详细信息,请参阅"关于快进的注意事项"部分.

我以为那可能是一个

git push --force
Run Code Online (Sandbox Code Playgroud)

将强制我的本地副本将更改推送到远程副本并使其相同.它确实强制更新,但当我回到远程仓库并进行提交时,我注意到文件包含过时的更改(主远程仓库以前有过).

正如我在评论中提到的其中一个答案:

[我]尝试强制,但当回到主服务器保存更改时,我得到过时的暂存.因此,当我提交存储库时不一样.当我再次尝试使用git push时,我得到了同样的错误.

我该如何解决这个问题?

git push git-push git-non-bare-repository

1206
推荐指数
11
解决办法
118万
查看次数

推送后修改提交

在我最近对已推送的存储库的提交中,我注意到我在文件中拼错了一个单词,现在想更改它。但是,我不想创建一个全新的提交。有没有办法修改我最新的提交并将其推送到我的存储库中,而无需重置、删除和推送?

过去我是这样做的:

git reset HEAD~1 --soft
git push -f
# correct the spelling
git add .
git commit -m "bug10 fix"
Run Code Online (Sandbox Code Playgroud)

有没有办法纠正文件的拼写,修改我最新的提交并推送,而不必重置,强制删除,然后重新提交?

我试过:

# fixed the file
git add .
git commit --amend --no-edit
git push
Run Code Online (Sandbox Code Playgroud)
 ! [rejected]        Nov21 -> Nov21 (non-fast-forward)
Run Code Online (Sandbox Code Playgroud)

git commit git-amend

13
推荐指数
1
解决办法
2万
查看次数

git修改需要git push -f吗?

make changes
git commit 'made changes' -a
git push origin
make more changes
git ammend -a
git push origin
Run Code Online (Sandbox Code Playgroud)

我注意到当我做一个git commit --ammend -a然后尝试推送到远程仓库时,它需要我强制push(git push -f).

我的猜测是因为它试图推动相同的(?这是什么?)提交代码但注意到文件中的差异.

这是正确/正常吗?

git

2
推荐指数
1
解决办法
251
查看次数