可能用到的命令:
查看當前分支:git branch
切換分支:git checkout master(分支名)
查看tag:git tag
查看當前git狀態:git status
顯示所有提交過的版本信息: git log
查看所有分支的所有操作記錄: git reflog
1. 查看某個tag的詳情:git show v1.3.5
返回:commit backid(回退命令就用這個id)
2. 通過commit的id回退:git reset --hard backid
如果這個時候你立馬投入與bug的戰斗,修改后發版本,那么你就犯了嚴重的錯誤,因為你修改后的代碼是無法與正在開發的版本合並噠,也就是說你的修改並不能加入現有的代碼。所以: 特別注意:通過標簽回退版本后,要馬上拉一個分支,然后當前主干分支要立即回到原來的位置,否則正在開發的代碼可能白干了,接着在剛拉的分支上修改bug,修改完畢合並到主干上 (驗證過,是對的)
3. 回退版本后,立即拉取分支,這里取名bugfix分支:git checkout -b bugfix
4. 請先回到主干分支上:git checkout master
5. 切換到bugfix分支,修改bug。就可以按照原先的開發流程繼續工作
操作過程中容易出現直接checkout指定的tag,這種是有問題的,
git checkout tag_name 這時候 git 可能會提示你當前處於一個“detached HEAD" 狀態。(detached 分離的,這時候head指向了tag,但是idea的version control內能看到一個嘆號!)
因為 tag 相當於是一個快照,是不能更改它的代碼的。出現這種問題,可以直接pull一次代碼,這時候head就會轉到操作之前的HEAD
參考文章:
gitlab回滾到指定tag版本 https://blog.51cto.com/wangqh/2129095
git使用tag恢復到以前的版本 https://blog.csdn.net/fzk2008/article/details/59575834