(06) 介紹物件結構和相關指令
cmd
mkdir demo-git 產生一個demo-git資料夾
cd demo-git
git init 建立repository儲存庫
echo 1 > a.txt 建立一個檔案a.txt內容是1
copy a.txt b.txt 複製a.txt叫b.txt
git add . 將檔案加入git中
git hash-object a.txt 查看blob物件,是用a.txt的內容1生成一個hash雜湊碼,前兩碼是資料夾名稱,後面是檔名,點進去看內容會是被壓縮編譯過的內容(原來是1)
git commit -m "註解說明" 提交目前版本
git log 查看commit物件雜湊碼
git cat-file -p master 查看tree物件的雜湊碼
git cat-file -p 'tree物件的雜湊碼' 查看tree物件底下的blob物件
(07) 講解索引staged結構、說明指令並講解Git檔案的生命週期(看保哥網站)
----索引就是staged狀態,Git儲存庫的運作,是將工作目錄裡的變化,透過更新索引的方式,將資料寫入成Git物件。
----git status 就會看到檔案狀態
----git show master:filename 可以看檔案內容~
----新增檔案用 git add filename 會變成等待被commit狀態(也就是staged索引),同時該檔案會屬於unmodified的狀態(不難理解,剛加入是最新的狀態),但add不是commit。
----刪除剛add但還沒commit的檔案,使用git rm filename,會出錯,因為,add的檔案雖然有被丟到等待commit的索引,但最新版裡面並沒有這個檔案,所以rm指令執行去比對索引跟最新版本後會出錯。一邊有一邊沒有這樣。
-----git rm --cached filename,這樣就可以把上述add的檔案從指名從索引中刪除,退回untracked狀態。
----如果是modified的檔案,就可以直接用git rm filename將刪除該檔案寫入索引,不過還是要git commit才會真的把該檔案刪掉。
----只要不再staged狀態的檔案,git commit是不會更新上去的,git reset --hard回復到上一版本會把該檔刪掉
cmd
mkdir demo-git 產生一個demo-git資料夾
cd demo-git
git init 建立repository儲存庫
echo 1 > a.txt 建立一個檔案a.txt內容是1
copy a.txt b.txt 複製a.txt叫b.txt
git add . 將檔案加入git中
git hash-object a.txt 查看blob物件,是用a.txt的內容1生成一個hash雜湊碼,前兩碼是資料夾名稱,後面是檔名,點進去看內容會是被壓縮編譯過的內容(原來是1)
git commit -m "註解說明" 提交目前版本
git log 查看commit物件雜湊碼
git cat-file -p master 查看tree物件的雜湊碼
git cat-file -p 'tree物件的雜湊碼' 查看tree物件底下的blob物件
(07) 講解索引staged結構、說明指令並講解Git檔案的生命週期(看保哥網站)
----git status 就會看到檔案狀態
----git show master:filename 可以看檔案內容~
----新增檔案用 git add filename 會變成等待被commit狀態(也就是staged索引),同時該檔案會屬於unmodified的狀態(不難理解,剛加入是最新的狀態),但add不是commit。
----刪除剛add但還沒commit的檔案,使用git rm filename,會出錯,因為,add的檔案雖然有被丟到等待commit的索引,但最新版裡面並沒有這個檔案,所以rm指令執行去比對索引跟最新版本後會出錯。一邊有一邊沒有這樣。
-----git rm --cached filename,這樣就可以把上述add的檔案從指名從索引中刪除,退回untracked狀態。
----如果是modified的檔案,就可以直接用git rm filename將刪除該檔案寫入索引,不過還是要git commit才會真的把該檔案刪掉。
----只要不再staged狀態的檔案,git commit是不會更新上去的,git reset --hard回復到上一版本會把該檔刪掉
沒有留言:
張貼留言