日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【Git入门之五】版本管理

發布時間:2023/11/29 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Git入门之五】版本管理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

1.版本回退

我們先看一下從項目開始到現在做了什么操作。

[cpp]?view plaincopy

  • #總共是4個操作??

  • $?git?log?--pretty=oneline??

  • c5c83cfcdb25c67a5c66b4fe3844d0ea912830ec?remove?JackyData03??

  • a25c58804cb3f4045564fc0ec6a4e6eb4dae7072?amend?modify?JackyData02??

  • cba8800f2daaf4075a506b6d763798ea15ba11cc?modify?JackyData01??

  • aea0365712908805bc28540b4db9fd2f15360a8b?init?AddFiles??

  • 現在我后悔了,不想移除JackyData03,怎么辦?

    git reset用于版本回退,首先我們必須先知道當前版本是哪個,git用HEAD來表示當前版本。HEAD^表示上一個版本,HEAD^^表示上上個版本,HEAD~100表示往前100個版本。

    [cpp]?view plaincopy

  • #回退到上一個版本??

  • $?git?reset?--hard?HEAD^??

  • HEAD?is?now?at?a25c588?amend?modify?JackyData02??

  • 現在看看,JackyGit/JackyData03是不是又回來了。


    2.版本選擇

    這時我們再看看操作日記。

    [cpp]?view plaincopy

  • #只剩3個操作了,移除JackyData03的操作不見了??

  • $?git?log?--pretty=oneline??

  • a25c58804cb3f4045564fc0ec6a4e6eb4dae7072?amend?modify?JackyData02??

  • cba8800f2daaf4075a506b6d763798ea15ba11cc?modify?JackyData01??

  • aea0365712908805bc28540b4db9fd2f15360a8b?init?AddFiles??

  • 現在我又后悔了,想回到JackyData03被移除的狀態。

    (1)如果git bash沒被關掉,向前滾動找到

    [cpp]?view plaincopy

  • #移除JackyData03文件的版本號??

  • c5c83cfcdb25c67a5c66b4fe3844d0ea912830ec?remove?JackyData03??

  • 有了這個版本號,我們就可以這么做

    [cpp]?view plaincopy

  • #還是使用reset,直接選擇要切換的版本號??

  • $?git?reset?--hard?c5c83c??

  • HEAD?is?now?at?c5c83cf?remove?JackyData03??

  • 當然版本號可用不用完全輸入,輸入前幾個git就會幫你找到,也不能太少,太少可能會找出多個。

    可以看到提示HEAD現在處在c5c83c這個版本位置。

    (2)如果git bash被關掉了,找不到版本號了怎么辦?

    git reflog可以顯示每一次的操作記錄。

    [cpp]?view plaincopy

  • $?git?reflog??

  • c5c83cf?HEAD@{0}:?reset:?moving?to?c5c83c??

  • a25c588?HEAD@{1}:?reset:?moving?to?HEAD^??

  • c5c83cf?HEAD@{2}:?commit:?remove?JackyData03??

  • a25c588?HEAD@{3}:?commit?(amend):?amend?modify?JackyData02??

  • a5f6601?HEAD@{4}:?commit:?modify?JackyData02??

  • cba8800?HEAD@{5}:?commit:?modify?JackyData01??

  • aea0365?HEAD@{6}:?commit?(initial):?init?AddFiles??

  • 然后再使用reset命令,就可以隨意選擇版本了。


    3.撤銷修改

    3.1.工作區

    再修改點東西。

    [cpp]?view plaincopy

  • #修改JackyData01內容??

  • $?echo?"GoodBye?SVN"?>?Jackydata01??

  • 看一下狀態

    [cpp]?view plaincopy

  • #看一下狀態,Jackydata01在工作區被修改了(紅色高亮)??

  • $?git?status??

  • #?On?branch?master??

  • #?Changes?not?staged?for?commit:??

  • #???(use?"git?add?<file>..."?to?update?what?will?be?committed)??

  • #???(use?"git?checkout?--?<file>..."?to?discard?changes?in?working?directory)??

  • #??

  • #???????modified:???Jackydata01??

  • #??

  • no?changes?added?to?commit?(use?"git?add"?and/or?"git?commit?-a")??

  • 現在我后悔了(最后一次),想要撤銷刪除怎么辦?

    git checkout --file可以撤銷工作區的修改

    [cpp]?view plaincopy

  • #撤銷JAckydata01的改動??

  • $?git?checkout?--?Jackydata01??

  • ??

  • #看一下當前Git倉庫的狀態,干凈的??

  • $?git?status??

  • #?On?branch?master??

  • nothing?to?commit,?working?directory?clean??

  • 3.2.暫存區

    再改Jackydata01的內容。

    [cpp]?view plaincopy

  • #修改JackyData01內容??

  • $?echo?"GoodBye?SVN"?>?JackyData01??

  • 這次手太快了,直接把修改的內容add到暫存區了。

    [cpp]?view plaincopy

  • #修改內容add到暫存區??

  • $?git?add?Jackydata01??

  • ??

  • #看一下狀態,JackyData01在被修改了,并add到暫存區(綠色高亮)??

  • yf005@yf005?/d/jackygit?(master)??

  • $?git?status??

  • #?On?branch?master??

  • #?Changes?to?be?committed:??

  • #???(use?"git?reset?HEAD?<file>..."?to?unstage)??

  • #??

  • #???????modified:???Jackydata01??

  • #??

  • 嗯,沒錯你猜對了。我后悔了(節操呢?),這時要怎么辦?

    這時直接使用git checkout --file是無效的。

    必須先使用git reset HEAD file把暫存區的修改撤回到工作區的修改。

    [cpp]?view plaincopy

  • #撤回到工作區的修改??

  • $?git?reset?HEAD?Jackydata01??

  • Unstaged?changes?after?reset:??

  • M???????Jackydata01??

  • ??

  • #看一下當前狀態,未添加到暫存區(紅色高亮)??

  • $?git?status??

  • #?On?branch?master??

  • #?Changes?not?staged?for?commit:??

  • #???(use?"git?add?<file>..."?to?update?what?will?be?committed)??

  • #???(use?"git?checkout?--?<file>..."?to?discard?changes?in?working?directory)??

  • #??

  • #???????modified:???Jackydata01??

  • #??

  • no?changes?added?to?commit?(use?"git?add"?and/or?"git?commit?-a")??

  • 這個時候重復3.1.工作區內的撤銷修改即可。

    3.3.已提交到版本庫

    如果已經提交到版本庫,那么使用1.版本回退功能吧。


    3.4.其他撤銷指令

    其他撤銷指令諸如git clean和git revert請自行嘗試。


    轉載于:https://my.oschina.net/xiaoxiao23/blog/190519

    總結

    以上是生活随笔為你收集整理的【Git入门之五】版本管理的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。