標籤:style http color 使用 os strong 檔案 資料
1.取得項目的Git倉庫的方式
第一種是在現存的目錄下,通過匯入所有檔案來建立新的 Git 倉庫。
要對現有的某個項目開始用 Git 管理,只需到此項目所在的目錄,執行: $ git init
初始化後,在目前的目錄下會出現一個名為 .git 的目錄,所有 Git 需要的資料和資源都存放在這個目錄中。 第二種是從已有的 Git 倉庫複製出一個新的鏡像倉庫來。如果想對某個開源項目出一份力,可以先把該項目的 Git 倉庫複製一份出來,這就需要用到
git clone 命令。Git 收取的是項目曆史的所有資料(每一個檔案的每一個版本)。
2.記錄每次更新到倉庫接下來,對這些檔案作些修改,在完成了一個階段的目標之後,提交本次更新到
倉庫。對於任何一個檔案,在 Git 內都只有三種狀態:已提交(committed),已修改(modified)和已暫存 (staged)。Git 管理項目時,檔案流轉的三個工作區域:Git 的
工作目錄,
暫存地區,以及
本地倉庫。
工作目錄下面的所有檔案都不外乎這兩種狀態:已跟蹤或未跟蹤。
- 已跟蹤的檔案是指本來就被納入版本控制管理的檔案,在上次快照中有它們的記錄,工作一段時間後,它們的狀態可能是未更新,已修改或者已放入暫存區。
- 其他檔案都屬於未追蹤檔案。它們既沒有上次更新時的快照,也不在當前的暫存地區。初次複製某個倉庫時,工作目錄中的所有檔案都屬於已追蹤檔案,且狀態為未修改。
編輯過某些檔案之後,Git 將這些檔案標為已修改。我們逐步把這些修改過的檔案放到
暫存地區,直到最後一次性提交所有這些暫存起來的檔案,如此重複。附:
3.可以對檔案進行的操作
- 檢查當前檔案狀態,可以用
git status 命令
- 跟蹤新檔案,使用命令
git add開始跟蹤一個檔案
暫存已修改檔案,要暫存這次修改,運行 git add 命令(這是個多功能命令:可以開始跟蹤新檔案,或者把已跟蹤的檔案放到暫存區,還能用於合并時把有衝突的檔案標記為已解決狀態等)
- 忽略某些檔案,有些檔案無需納入 Git 的管理,也不希望它們總出現在未追蹤檔案列表。可以建立一個名為
.gitignore 的檔案,列出要忽略的檔案模式。
- 查看已暫存和未暫存的更新,
git status 的顯示比較簡單,僅僅是列出了修改過的檔案,如果要查看具體修改了什麼地方,可以用 git diff 命令。單單 git diff 不過是顯示還沒有暫存起來的改動,而不是這次工作和上次提交之間的差異。
- 提交更新,命令
git commit,在暫存準備好可以提交前,一定要確認還有什麼修改過的或建立的檔案還沒有 git add 過,否則提交的時候不會記錄這些還沒暫存起來的變化。所以,每次準備提交前,先用 git status 看下,是不是都已暫存起來了,然後再運行提交命令 git commit。
- 跳過使用暫存地區,儘管使用暫存地區的方式可以精心準備要提交的細節,但有時候顯繁瑣。Git 提供了一個跳過使用暫存地區的方式,在提交的時候,給
git commit 加上 -a 選項,Git 就會自動把所有已經跟蹤過的檔案暫存起來一併提交,從而跳過 git add 步驟。
- 移除某個檔案,要從 Git 中移除某個檔案,就必須要從已追蹤檔案清單中移除(確切地說,是從暫存地區移除),然後提交。可以用
git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的檔案,這樣以後就不會出現在未追蹤檔案清單中了。
- 檔案移動,不像其他的 VCS 系統,Git 並不追蹤檔案移動操作。
mv 命令。要在 Git 中對檔案改名,可以這麼做:
$ git mv file_from file_to
其實,運行 git mv 就相當於運行了下面三條命令:
$ mv README.txt README #move$ git rm README.txt #remove$ git add README #跟蹤新檔案
如此分開操作,Git 也會意識到這是一次改名。
4.查看提交曆史
- 在提交了若干更新之後,又或者複製了某個項目,想回顧下提交曆史,可以使用
git log 命令查看。
- 預設不用任何參數的話,
git log 會按提交時間列出所有的更新,最近的更新排在最上面。git log 有許多選項可以協助你搜尋感興趣的提交,接下來我們介紹些最常用的。git log -p 選項展開顯示每次提交的內容差異,用 -2 則僅顯示最近的兩次更新。
git log 還提供了許多摘要選項可以用,比如 --stat,僅顯示簡要的增改行數統計,等等。
- 除了定製輸出格式的選項之外,
git log 還有許多非常實用的限制輸出長度的選項。
- 隨 Git 一同發布的 gitk 就是這樣一種工具,基本上相當於
git log 命令的可視化版本。