我读到了有关如何修改提交消息的内容.接受的答案是:
如果您已经将提交推送到远程分支,那么您需要强制推送提交
git push <remote> <branch> --force.
这是我的理解(也来自已接受的答案)git push --force将覆盖远程分支上的所有数据与本地数据.
为什么在更改提交消息后强制推送是必要的?如果我修改提交消息并试图在没有-f或者推送的情况下会发生什么--force?
我已经开始将我的私有subversion项目转换为git(Github)并将代码发布给公众.因此,我是一个git新手.
不幸的是,有一个包含机密数据的项目的修订版.修订版没有标记,我只知道它的哈希值.
有没有办法从远程git存储库中完全删除该特定修订?这是一个独立项目,所以没有人会受到伤害.
我的提交看起来像这样:
alex@alex-M52AD-M12AD-A-F-K31AD:~/node/project$ git log
commit 050e4417634300e724b8e0c29bb8b7a240a9a996
Author: alexcheninfo <alexchen.info@gmail.com>
Date: Fri Feb 12 12:55:38 2016 +0800
Rename documents
commit 637bd5ac976118d7e0fb3bf5f2bab950ce0ebb66
Author: alexcheninfo <alexchen.info@gmail.com>
Date: Fri Feb 12 11:29:01 2016 +0800
Make sidenav a component
Run Code Online (Sandbox Code Playgroud)
我想更改提交消息Make sidenav a component.我想使用git -ammend但我认为它只能用于更改上次提交的消息?
我有一个commit-msg钩子,我为所有本地提交运行,对于某个项目,我需要运行.问题是,当我从其他叉子拉进来时,我的一些同胞没有运行这个commit-msg钩子.到目前为止,我一直在做
$ git rebase --interactive $commit_parent
Run Code Online (Sandbox Code Playgroud)
作为概括非常相似这里.选择未正确完成的提交,重新编辑等.一切都非常可行,但我手工做的也很乏味.
我该如何自动化?钩子不需要疏忽.
我想更改我之前做过的提交的提交消息并推送到origin/master.现在我已经完成了几次提交和推送.有没有办法更改第二个最后一个或第三个最后一次推送的提交消息?
假设我有3次提交:
Added bar.txt (3)
Second Commit (2)
Initial Commit (1)
Run Code Online (Sandbox Code Playgroud)
如何(2)通过使用其SHA ID 更改提交消息?提交尚未推送到远程存储库。
我试过了: git commit --amend -m "Added foo.txt" 8457931
8457931 是SHA ID的前7个数字。
为什么不是重复的原因:与链接的问题不同,我问如何通过使用SHA ID指向我想要更改的提交来更改提交消息。
有时我忘记在提交之前添加一些文件。使用 Mercurial 我这样修复它:
hg qinit 我可以用 Git 做这样的事情吗?
通常我想编辑提交消息,而不必重新选择上次提交的文件集.
git commit file1.c file2.c
Run Code Online (Sandbox Code Playgroud)
提交消息中的意外错误.
git commit file1.c file2.c --amend
Run Code Online (Sandbox Code Playgroud)
这是有效的,但我不想重新选择原始提交中的文件集,我曾经偶然做过git commit -a --amend并无意中添加了许多更改.
我知道git rebase -i HEAD~1然后替换pick为r(重新单词),但这最终只是几个步骤.
有没有办法在不包含任何新文件的情况下一步重写最后一次提交?
我对github非常陌生,并试图将其首次纳入我的工作。我在RStudo中工作,使用gui中的commit和push按钮。我将一些数据放在要处理的计算机上的文件夹中。我进行了几次提交,然后提交了该数据,然后又进行了几次提交。然后,我尝试将整个内容推送到github。但是,我收到一条错误消息:
remote: error: GH001: Large files detected. You may want to try Git Large File Storage - https://git-lfs.github.com.
remote: error: Trace: f4a84c3a176d2c77039d041a21c0c455
remote: error: See http://git.io/iEPt8g for more information.
remote: error: File S_Fulltaxonomy.csv is 158.06 MB; this exceeds GitHub's file size limit of 100.00 MB
To git@github.com:moanam/paper.git
! [remote rejected] master -> master (pre-receive hook declined)
error: failed to push some refs to 'git@github.com:moanam/paper.git'
Run Code Online (Sandbox Code Playgroud)
现在,我的分支比原始/主节点提前10次提交,而问题提交在中间某个地方。
我一直在寻找解决方案,并在Git历史记录的中间发现了诸如undo commit的帖子 , 如何修改现有的未推送的提交? 以及 当我的分支比master领先5次提交时如何删除提交中的太大文件
但是,解决方案是一行代码,其中原始请求者应替换几个单词并在某个地方运行。我真的很陌生,不知道在哪里运行所有这些代码,替换什么以及如何查找和更改问题,这些都提交到我的工作中。我该怎么做呢?还是在RStudio中有基于GUI的撤消提交的版本?还是有人可以确切解释如何使用代码?
我知道这可能是一个非常简单的问题,很抱歉浪费您的时间。但是,我确实已经花了相当长的时间寻找,找不到适合我使用的任何简单方法!总是假设有太多的知识。谢谢你的帮助!
如何更改以前未刷新的git提交消息?
更新: 问题急剧减少,以适应答案.要查看完整内容.看历史.
这样做的正确方法是什么?谢谢.