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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

git--版本创建、回滚的原理及演练

發布時間:2025/4/16 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 git--版本创建、回滚的原理及演练 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

聲明:文章原稿來源于恩師稀哥。
1. 工作原理
我們來簡單說明一下git的工作原理
① 在版本庫中創建文件的時候,就有了文件的第一個版本,于此同時會生成一個指針指向這個版本

② 當修改了code.txt中的內容以后,就生成了第二個版本,但是這個版本是依賴上一個版本的,在這個版本中僅僅會記錄文件發生了那些修改。在有了一個新版本之后,這個指針會指向最新的版本。

③ 通過修改指針的位置可以實現回退到某個版本,表示方式有兩種,一種是用^,一種使用~,如下

  • HEAD^ 或者 HEAD~1:表示上一個版本
  • HEAD^^ 或者 HEAD~2:表示上兩個版本

通過上面的方式回退到第一個版本之后,指針就指向了版本1

2.基本使用

  • 創建一個版本庫,新建目錄git_test,在git_test目錄下創建一個版本庫,命令:git init
  • # mkdir /git_test # cd /git_test/ # git init Initialized empty Git repository in /git_test/.git/ # ls -a . .. .git 可以看到在git_test目錄下創建了一個.git隱藏目錄,這就是版本庫目錄。
  • 在git_test目錄下創建一個文件code.txt,寫入一行內容如下
  • # echo "first line">> code.txt # cat code.txt first line
  • 使用如下兩條命令可以創建一個版本,創建版本需要兩步:
  • # git add code.txt # git commit -m 'v1' [master (root-commit) c410627] v11 file changed, 1 insertion(+)create mode 100644 code.txt
  • 查看版本記錄,命令是git log
  • # git log commit c4106273b0b87ac6f42042589663900af3617837 >>>序號 Author: root<root@localhost.localdomain> >>>提交者 Date: Thu Dec 27 19:54:24 2018 +0800 >>>日期v1 >>>版本
  • 繼續編輯code.txt,在里面增加一行。
  • # echo "second line">>code.txt # cat code.txt first line second line
  • 使用如下命令再創建一個版本并查看版本記錄
  • # echo "second line">>code.txt # cat code.txt first line second line# git add code.txt # git commit -m 'v2 -newversion' [master 1a3efe2] v2 -newversion1 file changed, 1 insertion(+)# git log commit 1a3efe201b6e7fc66aa34f4ae9333a9ce2d54bb6 Author: root<root@localhost.localdomain> Date: Thu Dec 27 20:02:39 2018 +0800v2 -newversioncommit c4106273b0b87ac6f42042589663900af3617837 Author: root<root@localhost.localdomain> Date: Thu Dec 27 19:54:24 2018 +0800v1
  • 現在如果想要回到某一個版本,可以使用如下命令:git reset --hard HEAD^
  • 其中HEAD表示當前最新版本,HEAD^ 表示當前版本的前一個版本,HEAD^^表示當前版本的前前個版本,也可以使用HEAD~1 表示當前版本的前一個版本,HEAD~100表示當前版本的前100版本。

    # git reset --hard HEAD^ HEAD is now at c410627 v1 # git log commit c4106273b0b87ac6f42042589663900af3617837 Author: root<root@localhost.localdomain> Date: Thu Dec 27 19:54:24 2018 +0800v1# cat code.txt first line 執行命令后使用git log查看版本記錄,發現現在只能看到版本1的記錄,cat code.txt查看文件內容, 現在只有一行,也就是第一個版本中code.txt的內容。
  • 假如我們現在又想回到版本2,這個時候該如何操作呢?可以使用命令git reset --hard 版本號從上面第6步的操作結果看看一看到版本2的版本號為1a3efe201b6e7fc66aa34f4ae9333a9ce2d54bb6
  • # git reset --hard 1a3efe HEAD is now at 1a3efe2 v2 -newversion 現在發現版本2有回來了。可以cat code.txt查看其里面的內容如下 # cat code.txt first line second line
  • 假如說上面的終端已經關閉了,看不到上面的版本好了該怎么回退版本呢?
  • ①首先執行命令將版本回退到版本1

    # git reset --hard HEAD^ HEAD is now at c410627 v1 # git log commit c4106273b0b87ac6f42042589663900af3617837 Author: root<root@localhost.localdomain> Date: Thu Dec 27 19:54:24 2018 +0800v1

    ②把當前終端關閉,然后打開新的終端,已經無法看到之前操作留下的版本2的版本號了
    這里就要用到了 git reflog 命令來查看我們的操作記錄

    # git reflog c410627 HEAD@{0}: reset: moving to HEAD^ 1a3efe2 HEAD@{1}: reset: moving to 1a3efe c410627 HEAD@{2}: reset: moving to HEAD^ 1a3efe2 HEAD@{3}: commit: v2 -newversion c410627 HEAD@{4}: commit (initial): v1

    ③可以看到版本2的版本號,在使用命令進行回滾

    # git reset --hard 1a3efe2 HEAD is now at 1a3efe2 v2 -newversion

    總結

    以上是生活随笔為你收集整理的git--版本创建、回滚的原理及演练的全部內容,希望文章能夠幫你解決所遇到的問題。

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