我的問題涉及git以及如何正確使用它。我的知識非常基礎。在文件的新提交版本中包含舊版本提交文件的一部分
我不小心刪除了我的文件中的一個代碼塊,但是在提交併推送到github後才意識到這一點。 在實現之前,我進行了另外一些我也承諾和推動的有意更改。 現在,我想包含在我的文件的最新(提交)版本中uninntionally deleted代碼塊。
(How)是否可以實現?
我的問題涉及git以及如何正確使用它。我的知識非常基礎。在文件的新提交版本中包含舊版本提交文件的一部分
我不小心刪除了我的文件中的一個代碼塊,但是在提交併推送到github後才意識到這一點。 在實現之前,我進行了另外一些我也承諾和推動的有意更改。 現在,我想包含在我的文件的最新(提交)版本中uninntionally deleted代碼塊。
(How)是否可以實現?
既然你已經推動了你的提交,改變它是有潛在危險的,因爲有人可能已經檢查出它並且現在正在處理它。在新的提交中添加塊將會更加清晰。
但是,可以獲取代碼塊並將其包含在文件的最新版本中,但是您必須以某種方式創建新的提交。
你沒有提及如果你使用任何一種GUI,所以我會假設你使用git的命令行。
選項1:要將它作爲舊提交之上的新提交進行添加,請使用選擇的工具來顯示您的回購記錄(這將在命令行中爲gitk),查找上一次提交,複製已刪除的塊,將其粘貼到當前代碼中並提交併推送新添加的塊。
選項2:回去你repositorys歷史並改變首先刪除,你可以使用
git reset HEAD~2
通過兩次提交你的資料庫重置。您的兩個提交引入的更改現在在您的工作目錄中顯示爲未分期更改。要恢復你想
git checkout -- <filename>
保留,您可以撤消整個文件的更改(如果沒有其他變化)或
撤消塊的只是刪除塊刪除git checkout -p <filename>
並遵循屏幕上的說明。然後,您可以提交您的更改,無論是一次提交還是兩次分離,因爲它們都是初始化的。當你想推動時,你將不得不用-force參數強制覆蓋,因爲你的歷史與上游的歷史不同。請注意,這是潛在破壞性的。