如何编辑旧提交并将版本推送到服务器?

时间:2013-11-07 10:14:29

标签: git

我在master分支中有3个提交:

  • 第三

  • 第二

  • 第一

我需要先提交(我使用checkout命令完成),编辑它并将提交推送到远程仓库。我已经做了以下步骤:

  1. git checkout(我的分支是“(分离 来自...)“)
  2. 某些版本
  3. git commit --amend
  4. 但是如何将我的提交推送到主分支?提前致谢。

4 个答案:

答案 0 :(得分:0)

只使用git push origin master。请确保您在master分店。

答案 1 :(得分:0)

git checkout master

然后 git merge 'other_branch_name'

答案 2 :(得分:0)

使用rebase:

git rebase first^ --interactive 

然后在编辑器中将pick替换为edit,然后保存并运行。您将能够编辑内容,然后按git commit --amend

提交

然后,推送您的私人仓库所在的服务器:

git push origin master -f

-f是必需的并且意味着“强制”:因为对于发布的内容进行重新定义通常是一个坏主意(这就是为什么我将私有仓库放入粗体:如果其他人使用该存储库,请不要这样做,或首先警告他们,他们将不得不改变或重置他们的当地回购)

答案 3 :(得分:0)

您似乎没有在master分支上工作,但在分离的HEAD上工作。这有点危险,因为你可以丢失提交,直到有对它们的引用(分支,标记)。所以使用:

git branch temp

然后,您可以将提交内容发送到本地master

git checkout master
git merge temp

临时分支已经无用了,所以删除它:

git branch -d temp

您的提交现在在本地master,您可以推送它们。

(你也可以注意分离的HEAD的SHA1,跳过我提到的git branch命令,并使用带有SHA1的git merge而不是分支名称。但是,我找到了方法使用分支更多git-aware。)