簡體   English   中英

Gerrit和回購

[英]Gerrit and repo

我在gerrit上上傳了補丁X,但是由於錯誤,我包含了我不應該包含在補丁中的文件Y。 現在,我想為X提交一個新的補丁集,而沒有文件Y。可以這樣做嗎?

從X的新補丁集中刪除Y的步驟
手動刪除我在Y中所做的所有更改(這不是最好的方法,但是它從用於X的新補丁集中刪除了Y)
git add .
git commit -s --amned
repo upload .

簡短的答案:

$ git reset HEAD^ <file to remove from commit>
$ git commit --amend

這將使<file>仍保持本地修改狀態,因此,假設您根本不再希望進行修改,現在可以還原該修改:

$ git checkout <file>

這是最快的方法。 另外一個選項:

$ git log -n1 --oneline | cat
$ git reset --soft HEAD^
$ git reset <file to be unstaged>
$ git commit -C <sha1 commit hash from "git log" above>

您的更改已經過審查嗎? 如果他們仍在等待審查,則可以將其標記為已放棄並擺脫它們。 之后,您可以再次提交正確的代碼。

如果您檢查的更改和補丁已合並到git存儲庫中,則解決方案應該不會有所不同,只需撤消該線程中說明的git push; 撤消“ git push”

我使用Gerrit的次數不多,但是您可以修改我相信的提交。

修改提交

使用git commit --amend修改提交時,請在提交消息中保留Change-Id行不變。 這將使Gerrit可以使用修訂的提交自動更新更改。

http://gerrit.googlecode.com/svn/documentation/2.0/user-changeid.html#amend

評論后:

您是否確保存在Change-Id行,並且是提交消息的最后一行? 如果提交消息中沒有Change-Id行,請從網絡上的更改頁面復制該行並將其放入您的提交消息中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM