網(wǎng)站地圖怎么做html公司員工培訓(xùn)內(nèi)容有哪些
在我們使用git進行版本控制時,當代碼寫錯分支,怎么將這些修改轉(zhuǎn)移到正確的分支上去呢?這時,我們可以使用git stath
命令來暫存我們的修改,然后再切換到其他分支
未commit(提交)操作時
1. 先將修改存入暫存區(qū)
git add .
2. 把暫存區(qū)內(nèi)的修改存儲起來?
git stash ? ? ? ? ? ? ? ? ? ?
3. 切換到正確的分支?
git checkout dev ? ? ? ? ? ?
4. 將存儲的修改取出來?
git stash pop ? ? ? ? ? ? ? ?
已commit(提交)操作時?
需要撤回commit之前的狀態(tài),
git reset HEAD^ ??
然后繼續(xù)未commit的步驟即可
已經(jīng)push到遠程倉庫時
1.回滾到指定版本
-
不保留原更改代碼
如果你希望完全撤銷到某個特定的提交版本,并且不保留之后的所有更改(包括未提交的修改),可以使用git reset
命令配合--hard
選項。這將把HEAD指針(以及當前分支)直接移動到指定的提交上,丟棄之后的所有更改。
git reset --hard <commit-id>
-
保留原更改代碼,并生成新的提交
如果你希望撤銷某個特定的提交,但又想保留該提交之后的所有更改,并生成一個新的提交來替代那個被撤銷的提交,可以使用git revert
命令。這會在你的項目歷史中插入一個新的提交,這個新提交是原來被撤銷提交的“反向補丁”。
git revert <commit-id>
-
強制推送更改到遠程倉庫
當你通過git reset
或git revert
修改了本地倉庫的歷史后,你需要將這些更改推送到遠程倉庫。由于這些更改改變了遠程倉庫的歷史,你需要使用強制推送(git push -f
)來覆蓋遠程倉庫的歷史。
git push -f origin 分支名
警告:強制推送會覆蓋遠程倉庫的歷史,影響所有共享該分支的協(xié)作者。在執(zhí)行此操作前,請確保所有協(xié)作者都了解這一變更,并已經(jīng)同步了他們的本地倉庫以避免數(shù)據(jù)丟失。
總結(jié)
- 未commit時,臨時存儲- 切分支- 釋放臨時存儲,已commit時,回撤狀態(tài),繼續(xù)執(zhí)行未commit時操作
- 使用
git reset --hard
來完全撤銷到某個特定的提交,但會丟失之后的更改。 - 使用
git revert
來撤銷某個特定的提交,同時保留之后的更改,并生成一個新的提交。 - 在修改了本地倉庫的歷史后,使用
git push -f
來強制推送更改到遠程倉庫,但請謹慎操作以避免不必要的問題。