在git中修改已经推送的代码

时间:2015-11-28 16:59:50

标签: git

我正在研究用户故事说US 2001:测试用户故事,我做了两次推送到远程server.code被审查并合并到分支机构。在此我做了跟进

1.First Push

   git commit -m "US 2001:Test user story"
   git pull --rebase origin master 
   git push origin HEAD:refs/for/master

2. Second push
   git commit --amend
   git pull --rebase origin master 
   git push origin HEAD:refs/for/master

审核后审核人员将该代码合并到分支机构。现在我发现了该用户故事的进一步变化。我很困惑如何提交和推送代码。 现在我无法做git commit --amend因为git log正在显示其他人的提交。 请帮助如何在git repo中推送更改。 我是否需要进行新的提交并将代码作为不同的更改集ID推送?

请帮助我。我是git的新手。

2 个答案:

答案 0 :(得分:0)

考虑被推送为“最终”的所有内容。

是的,为了保留历史记录,您需要根据其他人已推送的提交进行更改。这样,一旦他们拉动,他们将根据他们已经拥有的内容进行更改,并且每个人都拥有相同的版本。

  

从技术上讲,您也可以回到第一次提交,使用amend添加更改,从其他人那里重新更改更改,然后强制推送到上游。这是一个可怕的想法,因为它会破坏历史并给其他用户带来各种各样的问题。

答案 1 :(得分:0)

  

我是否需要make new commit并将代码推送到不同的更改集ID?

是。使用--amend重写分支历史记录。您只应将--amend用于尚未推送到任何远程仓库的提交。

我个人更喜欢每当我要处理一个功能时创建一个新分支,这样我就可以将所有相关的提交保存在一起。我建议你这样做:

  • 在一个单独的分支上工作,
  • 定期与主人联系 - 让你的变化保持在主人头上
  • 在新分支中执行代码审查
  • 只有在准备好并经过审核后才能将您的更改合并到主人。最好还是让你的评论员为你合并。