Git初學的學習筆記

來源:互聯網
上載者:User

本文是通過學習《Pro Git》--作者Scott Chacon 後所做的整理和思考筆記。

《Pro Git》中文版 PDF 下載見

一.GIT管理下的檔案周期

1.新添加的檔案或檔案夾是untracked狀態,意思是git的版本管理裡沒有這個檔案。

可以用git add來把這個檔案加入git管理,之後就會是tracked中的stage狀態了。

如果是新git clone或git init的檔案,則是在tracked狀態裡的unmodified狀態。

注1:新添了檔案,untracked的狀態:

注2:用git add <檔案名稱> 將檔案加入git管理後,檔案是tracked下的staged狀態

2.在git的管理下的狀態是tracked狀態,包括unmodified,modified和staged三種狀態。

3.unmodified狀態指本地的檔案與版本庫裡該檔案最近一次的提交是一致的。

4.一旦修改了檔案,檔案內容與版本庫裡該檔案最近一次的提交內容不一致,狀態便變成modified。此時可以用git add <檔案> 來stage檔案。

stage之後的檔案可以用git commit <檔案> 來提交檔案或 git reset HEAD <檔案> 來取消stage狀態。

5.當一個檔案已經stage後,如果再做修改,此時的狀態是部分stage,部分modified。如果commit的話,會提交已經stage的那部分。

6.git add有多種功能,可以將untracked的檔案track,可以將modified的檔案stage,還可以將merge時conflict後來修改好的檔案再次stage。

問題:為什麼要有一個stage的狀態?修改了檔案要stage再commit不是很麻煩嗎?

我的答案:commit是一次對所有stage過的檔案的提交,沒有針對某一個檔案的commit。

一般說來,一次commit是完成一個版本的snapshot,可以修改一個檔案就stage,也可以修改完了很多檔案一起stage。stage就像一個箱子,把要commit的內容都裝上去。然後對裝箱的內容做commit操作。

如果修改好的檔案可以直接提交,可以用git commit -a來自動stage,即對全部修改自動裝箱提交。

  • 1
  • 2
  • 3
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.