git add . 暫存區的目錄樹會更新,同時將工作區修改或新增的內容寫到了物件庫乙個新物件,該物件的id被記錄在暫存區的檔案索引中,工作區後續的add 和 暫存區後續的commitf都更新到這個id對應的物件中
git commit 暫存區的目錄樹寫入物件庫,head指向新的暫存區的那個目錄樹。(簡單理解:將暫存區的內容更新到物件庫中,並且會備份乙個該物件,用head指向這個備份)
git checkout -- 檔名 撤銷工作區中檔案尚未提交的修改。 實質:只是將暫存區的內容覆蓋到了工作區。
git rm --cached 檔名 會將暫存區的指定檔案刪除,工作區不受影響
git reset head 會將head指向的備份全部重寫到暫存區,工作區不受影響
git checkout head . 或 git checkout head 檔名 會head的覆蓋到工作區和暫存區。所以工作區沒有commit內容會被清除
git diff 用於工作區與暫存區的比較
git diff head 或 git diff master 用於工作區與 head比較
git diff --cached 或 git diff --cached head 用於與暫存區與head比較
git reset head^ 將head指向的目錄樹恢復到暫存區,工作區不影響
git reset --soft head^ 工作區和暫存區不改變,但是引用向前回退一次。 可以實現多次提交合併為一次提交
git reset --hard head^ 或 git reset --hard 9e8a761 將游標指向上次提交或任意一次提交,同時工作區也會跟著被覆蓋
重置後,重置後的版本之後的版本id就不能在提交歷史中看到,
可以git reflog 檢視版本的變化,查到重置版本後的版本號
git reset -- filename 或 git reset 僅將全部檔案或指定檔案撤出暫存區,相當於 git add 的反向操作
git rm --cached readme1.txt 刪除readme1.txt的跟蹤,並保留在本地。
git rm --cached xxdir 刪除xxdir的跟蹤,並保留在本地。
使用該命令後,.gitignore檔案中被配置的路徑才會生效
Git版本控制和個人一些總結
1.註冊github賬號,讓git 知道這台電腦做的修改要鏈結到哪乙個使用者git config global user.name git config global user.email your gmail.com 2.建立本機repo,初始化git管理mkdir local repo cd l...
git如何忽略一些檔案的版本控制
gitignore 檔案是用來去除那些不需要使用到 git 版本管理的檔案的,在 gitignore 檔案中寫入匹配格式,對應匹配的檔案將會被 git 忽略。help.md target src main src test sts apt generated classpath factorypat...
Git 忽略一些檔案不加入版本控制
在git中如果想忽略掉某個檔案,不讓這個檔案提交到版本庫中,可以使用修改 gitignore 檔案的方法。這個檔案每一行儲存了乙個匹配的規則例如 此為注釋 將被 git 忽略 a 忽略所有 a 結尾的檔案 lib.a 但 lib.a 除外 todo 僅僅忽略專案根目錄下的 todo 檔案,不包括 s...