如何提交之前推送并放弃在gerrit中的文件

时间:2013-06-18 11:11:03

标签: git gerrit

假设我有三个文件 - file 1file 2file 3。我添加它们,提交并推送它。它进入了gerrit系统,并且假设我发现我必须改变file 1中的某些东西,我放弃了gerrit中的补丁。在我的本地系统中,我修改了file 1并执行了git状态,然后它只显示file 1已修改。

我的问题是在一个补丁中推送修改后的文件(在这种情况下为file 1),file 2file 3并推送它。

如果我做git pull,它会说already up to date

我尝试git reset <previous commit id>然后添加我的更改并推送它。这将工作正常,但我不知道它是否正确的方法。 任何人都可以帮忙??

2 个答案:

答案 0 :(得分:3)

你为什么放弃改变?

Gerrit是专为此目的而设计的,您可以查看更改,查看文件1是否需要更改,然后修改文件1并再次将其作为补丁2提交

git status表明只有文件1发生了变化是正确的。它与你的本地存储库相比,而不是与gerrit相比。

执行此操作的正确方法是确保在本地git repository hooks文件夹中具有commit-msg hook gerrit。这将在您的提交消息中添加Change-Id。有了这个gerrit可以跟踪哪些提交与同一个变化有关。

  1. 初始更改,提交文件1-3:git commit -a
  2. 推送到gerrit:git push origin HEAD:refs/for/master
  3. 修改文件1
  4. 修改您上次更新文件1的提交:git commit -a --amend
  5. 再次推送到gerrit:git push origin HEAD:refs/for/master
  6. 现在您的修改将显示为补丁2,然后重复步骤3-5直到您满意为止。

答案 1 :(得分:0)

无需放弃更改。

您需要进行哪些更改,可以执行以下步骤。

  • 注意:确保git log显示的是您最近的提交 是否。
  
      
  1. git状态-将显示修改后的文件。
  2.   
  3. git add。或git添加 modified_file_names
  4.   
  5. git commit --amend(对最近的提交进行修改)
  6.   
  7. git push origin HEAD:引用/更改/ change_id
      例如:git push origin HEAD:refs / changes / 1125642(这将再次提交作为下一个
  8.   
     

补丁集。