1. 程式人生 > 其它 >git基礎操作(詳細版)

git基礎操作(詳細版)

技術標籤:Gitgit

git

初始化

給某個資料夾初始化 git

git init

建立版本

給該資料夾下建立一個版本,需要該資料夾下的檔案有所變化,因此建立一個檔案在該資料夾下面,然後操作以下兩步

git add code.txt
git commit -m '關於該版本的註釋、說明'

檢視版本記錄

git log

版本之間並不是記錄了全部的檔案內容資訊,而是隻記錄目前版本相較上一個版本變化了那些。比如添加了一行程式碼,或者刪除了一行註釋。

如果版本多長顯示不下,可以使用簡介模式

git log --pretty=oneline

HEAD

HEAD表示當前最近的一個版本,上一個版本是 HEAD ^

或者 HEAD~1 。如果是上100個版本 則是 HEAD~100

版本回退

如果需要將當前版本回退到上一個版本,或者上兩個版

git reset --hard HEAD^
# 或者
git reset --hard HEAD~2

版本去向指定版本

如果想要從當前的版本去向曾經提交過的任何一個版本。

git reset --hard 版本號

上例可以看出,在遷移版本的時候,git並沒有刪除任何一個版本,只是指標指向了不同的位置而已。

檢視在git曾經操作的記錄

git reflog

工作區和暫存區

工作區指的是,git當前工作的根目錄位置,即是工作區。即 .git檔案所在的位置

版本庫指的是git建立的 .git

資料夾,即是版本庫

暫存區指的是版本庫中的一個非常重要區域,用於暫存提交的檔案修改,使用下面命令 git add 可以新增修改到暫存區

git commit則是把暫存區中的所有修改,一次性的提交成一個版本記錄。

在提交版本之前可以多次將修改提交到暫存區,最後一次性的提交成版本

檢視當前工作區的狀態

git status

撤銷修改

  1. 當加入到暫存區的檔案被再次修改後,如果想要提交保留修改則使用 git add再次加入到暫存區,如果不想要修改了,則可以使用下面命令撤銷修改。也就是相當於使用暫存區來覆蓋工作區的修改。
git checkout -- 檔名
  1. 如果上面修改的檔案使用 git add
    已經新增到了暫存區,但是此時仍然不想要此次提交了,則需要使用下面命令取消暫存
git reset HEAD 檔名

再使用 git checkout則可以將此次修改從工作區徹底刪除掉

總結:想要撤銷修改的幾種case

  1. 修改了工作區的檔案,沒有提交暫存區,想直接丟棄 git checkout
  2. 修改了檔案,也提交了暫存區,還是想丟棄 git reset HEADgit checkout
  3. 修改類檔案,提交了暫存區,也提交了版本庫,則可以使用 git reset --hard 版本號 直接回到指定的版本。

檔案對比

  1. 對比修改了的工作區內容和最近版本HEAD內容有什麼不同,使用:
git diff HEAD -- 檔名
  1. 對比兩個版本之間,某個檔案的不同
# 對比HEAD版本和HEAD的上一個版本之間,某個檔案(非根目錄帶地址)的不同
git diff HEAD HEAD^ -- 檔名

注:

在這裡插入圖片描述

如圖所示,結果中的 --- +++ 是按照diff後面的版本順序來看

--- 代表當前最新的HEAD

+++ 代表HEAD^,即HEAD的上一個版本

檔案內容中沒有 - + 符號的,表示兩個檔案相同的地方,帶有 - + 符號的表示兩個檔案不同的地方,其中帶有 - 表示,該不同存在於HEAD 帶有+表示該不同存在於HEAD^(即HEAD上一個版本)

刪除檔案

刪除檔案,也是工作區檔案的改修,操作方法和檔案的修改是一樣的

如果刪除了工作區的檔案,想要撤銷刪除。和工作區的檔案被修改了,要撤銷一樣使用 git checkout -- 檔名

工作區的檔案被刪除,想將刪除的操作新增到暫存區,以下語句均可

git rm 檔名
git add 檔名

提交刪除到版本

git commit -m '註釋'