我有一個問題,當我櫻桃從gerrit挑選一個提交,做出改變等。我想提交他們回來 - 在我做這個櫻桃之前,我怎麼能做到這一點? 現在,我剛纔添加-A的所有文件,但是我不知道下一步該怎麼做Gerrit櫻桃挑
回答
修改僅適用於最新的提交。我們假設您要修改的提交被稱爲(具有SHA-1代碼)111
。您可以在git log
中看到您提交的真實SHA-1代碼。
您可以使用git reset --hard
使您的本地分支指向要修改的提交。請注意,對於沒有Gerrit的「普通」git,這將是一個非常糟糕的主意,因爲您通過修改已推送的提交來重寫歷史記錄!
我假設你已經有一些本地的,未提交的某些文件的更改,並且你想將這些更改應用到提交111
。您必須保留這些更改,因爲git reset --hard
will remove them and it couldn't be undone。
所以,你必須做(與你在一個分支的名稱替換master
):
git stash save
git reset --hard 111
git stash apply
<do some more changes to commit 111 if needed>
git commit --amend
git push gerrit master:refs/for/master
瞧 - 你的提交111進行了修訂,並與格里特更新。
還有另一種方法可以做到這一點 - 您可以使用git rebase --interactive
,但在這種情況下,我發現它比git reset
更復雜。
非常感謝你,那正是我正在尋找的 – user3274539
的格里特的工作流程,你的情況是:
- 使用URL從檢討獲取從格里特的變化頁面
- 進行更改
- 到指數的變化添加與
git add -A .
- 修改以前犯了
git commit --amend
- 修訂推回提交到格里特
git push gerrit master:refs/for/master
(更換master
你和遠程分支名稱)
我做了一些改變,提交了他們,然後我櫻桃Picked其他提交,做了另一個修改,現在我希望他們被推在我的櫻桃選擇之前的第一次提交,現在當我正在修改我在那個櫻桃選擇提交不幸 – user3274539
你可以通過交互式rebase('git rebase -i HEAD〜3')來完成。然後在你想修改的提交前用'e'替換'pick'。完成修改後,發出'git rebase --continue'完成操作。 –
我建議使用checkout而不是挑櫻桃從格里特的改變/補丁集。惠特檢查提交不會取決於。在你的情況下,修改最後修改會影響最後一次提交,這是櫻桃選擇 - 這是正常的。但是如果您想要修改1. commit中的更改,則只需首先刪除櫻桃選擇通知。
- 1. 不能櫻桃挑選
- 2. 櫻桃挑選做什麼?
- 3. 使用TortoiseGit挑選櫻桃
- 4. '致命:櫻桃挑選失敗'與Git
- 5. git的櫻桃挑選多次提交
- 6. 限制櫻桃挑選的權限
- 7. 混帳SVN挑櫻桃忽略警告
- 8. git櫻桃挑選不工作
- 9. git的櫻桃挑選和合並
- 10. Git的櫻桃挑選髒指數
- 11. 奇怪的git櫻桃挑選行爲
- 12. 櫻桃挑選通過Gerrit UI失敗,但通過本地git-cherry-pick成功
- 13. Git的摘櫻桃
- 14. GIT櫻桃採摘如何找出已經採摘櫻桃
- 15. 櫻桃挑選只承諾觸摸一個特定的文件
- 16. Git櫻桃挑選一個提交併將其放在下面
- 17. Git櫻桃挑選創建blob不提交?
- 18. 爲什麼我的櫻桃挑選失敗?
- 19. git shortlog:如何排除「(從提交____挑選的櫻桃)」等等?
- 20. git櫻桃挑選遠程無分支承諾
- 21. 讀取/櫻桃挑選從不同回購
- 22. TortoiseGit櫻桃挑選失敗!跳過這個提交?
- 23. git櫻桃挑選合併刪除文件
- 24. Git櫻桃挑選和數據模型完整性
- 25. Git櫻桃挑選文件,從目錄A到目錄B
- 26. git櫻桃挑選衝突包括不需要的代碼
- 27. 微風js櫻桃挑選保存問題
- 28. 我應該櫻桃挑選還是簽出一份承諾,以便在gerrit的頂部工作?
- 29. 櫻桃選擇合併
- 30. 申請櫻桃採摘
你實際上是否意味着評論/改變,而不是「從gerrit提交」和取/結賬而不是櫻桃選擇? –
櫻桃挑選提交是來自Gerrit的補丁集? – HiB