假设我有三个文件 - file 1
,file 2
和file 3
。我添加它们,提交并推送它。它进入了gerrit系统,并且假设我发现我必须改变file 1
中的某些东西,我放弃了gerrit中的补丁。在我的本地系统中,我修改了file 1
并执行了git状态,然后它只显示file 1
已修改。
我的问题是在一个补丁中推送修改后的文件(在这种情况下为file 1
),file 2
和file 3
并推送它。
如果我做git pull,它会说already up to date
。
我尝试git reset <previous commit id>
然后添加我的更改并推送它。这将工作正常,但我不知道它是否正确的方法。
任何人都可以帮忙??
答案 0 :(得分:3)
你为什么放弃改变?
Gerrit是专为此目的而设计的,您可以查看更改,查看文件1是否需要更改,然后修改文件1并再次将其作为补丁2提交
git status
表明只有文件1发生了变化是正确的。它与你的本地存储库相比,而不是与gerrit相比。
执行此操作的正确方法是确保在本地git repository hooks文件夹中具有commit-msg hook gerrit。这将在您的提交消息中添加Change-Id。有了这个gerrit可以跟踪哪些提交与同一个变化有关。
git commit -a
git push origin HEAD:refs/for/master
git commit -a --amend
git push origin HEAD:refs/for/master
现在您的修改将显示为补丁2,然后重复步骤3-5直到您满意为止。
答案 1 :(得分:0)
无需放弃更改。
您需要进行哪些更改,可以执行以下步骤。
git log
显示的是您最近的提交
是否。
- git状态-将显示修改后的文件。
- git add。或git添加 modified_file_names
- git commit --amend(对最近的提交进行修改)
- git push origin HEAD:引用/更改/ change_id
例如:git push origin HEAD:refs / changes / 1125642(这将再次提交作为下一个补丁集。