有办法从以后的提交中更改消息:
git commit --amend # for the most recent commit
git rebase --interactive master~2 # but requires *parent*
Run Code Online (Sandbox Code Playgroud)
如何更改第一次提交(没有父级)的提交消息?
有时在我提交之后,我发现我遗漏了一个文件,该文件也应该包含在提交中,但实际上并没有.我经常做的是再次提交.
git add the_left_out_file
git commit "include the file which should be added in the last commit"
Run Code Online (Sandbox Code Playgroud)
我认为这样做可能不是一个好主意,我想要做的只是在不添加提交的情况下包含文件.像这样的东西,
git add the_left_out_file
git add_staged_files_to_previous_commit
Run Code Online (Sandbox Code Playgroud)
可能吗?
如何在不触及命令行的情况下在SourceTree中编辑不正确的提交消息?
额外细节:
结果:
提交GitHub.com后,是否有任何在线编辑提交消息的方法?
从命令行,人们可以做到
git commit --amend -m "New commit message"
Run Code Online (Sandbox Code Playgroud)
正如另一个问题中的正确建议.
尝试git pull然后git push工作(没有任何其他提交在平均时间干扰).
但它可以通过GitHub网站完成吗?
我们的远程主分支不知怎的搞砸了.当前开发代码与最新提交一起在主分支上.显然,开发代码还没有为主分支做好准备.
所以在我的本地存储库中,我重置了最新的标记,git reset --hard (Tag).现在主分支在我的本地存储库上是正确的.现在,当我尝试将更改推送到远程存储库时git push origin master,我收到一个错误:
To (REMOTE GIT REPOSITORY LOCATION)
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to '(REMOTE GIT REPOSITORY LOCATION)'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again. See the
'Note about fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
所以环顾四周之后,我发现了这个--force选项.所以我强行推进了远程存储库,git push --force origin master我仍然遇到错误:
Total 0 (delta 0), reused …Run Code Online (Sandbox Code Playgroud) 我觉得这个问题已被多次询问,但解决方案通常是"我删除了目录并重新完成了我的工作." 我做了提交和推送,但意识到我在提交消息中提到了错误的票号.所以我在SO上寻找快速解决方案并最终在终端中键入以下内容:
$ git reset --soft HEAD^
$ git commit -m "... correct message ..."
Run Code Online (Sandbox Code Playgroud)
唯一的问题是我收到以下错误消息:
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
我正在使用git-flow模型,正在开发分支.我怎样才能将东西合并回来让git再次开心?
我们都听过一个人应该重订,从未发表的作品,它的危险,等等.但是,我还没有看到张贴如何处理的情况下衍合情况的任何食谱被出版.
现在,请注意,只有存储库仅由已知(并且最好是很小)的人群克隆,这才真正可行,这样无论谁推送rebase或重置,都可以通知其他人他们下次需要注意的时候取(!).
如果你没有本地提交foo并且它被重新定位,我看到的一个明显的解决方案将起作用:
git fetch
git checkout foo
git reset --hard origin/foo
Run Code Online (Sandbox Code Playgroud)
foo根据远程存储库,这将简单地抛弃本地状态以支持其历史记录.
但是,如果一个人在该分支机构进行了大量的本地更改,那么如何处理这种情况呢?
我知道有人问过类似的问题,但我相信他们的问题的原因是不同的.我做了一个硬重置,因为我搞砸了我的代码非常糟糕
git reset --hard 41651df8fc9
Run Code Online (Sandbox Code Playgroud)
我做了一些更改,我做了一些提交,现在我正在尝试将所有这些提交推送到服务器中,我得到以下错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@git.somewhere.git'
Run Code Online (Sandbox Code Playgroud)
Git建议做一个git pull,这就是其他人向其他用户建议的内容.但是,我相信git pull会将我当前的代码与我不再需要的代码合并(头部修订版).我怎么能推动并忘记我之前的版本/版本?
我做了一件非常愚蠢的事.我在代码中输入了一个curseword,然后将代码推送到master分支上.之后我又推了几次,所以人们不会把坏东西拉出来,但我仍然可以在提交历史中找到这个诅咒词.
有没有办法从历史记录中删除提交?编辑:我不想将文件添加到gitignore,因为我们需要该文件.
谢谢
所以我正在与一个团队合作开展敏感项目,我们所有的资源都在Github上.我最近推了一个提交,后来意识到我的推动有很多错误.我已经修复了我本地副本上的所有错误,并准备再次推送.但是有什么方法可以推送和覆盖我的上次提交吗?我的理由是,我不希望其他人查看我的初始提交及其所做的更改......
基本上我想用我的新提交覆盖旧提交..所以没有关于旧提交的信息仍然可供其他组成员查看.
任何帮助将不胜感激!谢谢.
注意:只是注意到这个问题被标记为重复.为了澄清,我的问题是覆盖已被推送的提交.我的问题不是改变不正确的提交消息.
git ×10
git-commit ×2
git-rebase ×2
github ×2
commit ×1
git-amend ×1
git-pull ×1
git-push ×1
git-reset ×1
post-commit ×1
rebase ×1