1 git init初始化後,在當前目錄下會出現乙個名為.git 的目錄,所有git 需要的資料和資源都存放在這個目錄中。不過目前,僅僅是按照既有的結構框架初始化好了裡邊所有的檔案和目錄,但我們還沒有開始跟蹤管理專案中的任何乙個檔案。
如果當前目錄下有幾個檔案想要納入版本控制,需要先用git add 命令告訴git 開始對這些檔案進行跟蹤,然後提交。
1git add doc.txt
2 git commit -m "
第一次使用命令列提交
git clone https://請記住,工作目錄下面的所有檔案都不外乎這兩種狀態:已跟蹤或未跟蹤。已跟蹤的檔案是指本來就被納入版本控制管理的檔案,在上次快照中有它們的記錄,工作一段時間後,它們的狀態可能是未更新,已修改或者已放入暫存區。而所有其他檔案都屬於未跟蹤檔案。它們既沒有上次更新時的快照,也不在當前的暫存區域。初次轉殖某個倉庫時,工作目錄中的所有檔案都屬於已跟蹤檔案,且狀態為未修改。在編輯過某些檔案之後,git 將這些檔案標為已修改。我們逐步把這些修改過的檔案放到暫存區域,然後等最後一次性提交暫存區域的所有檔案更新,如此重複。
要確定哪些檔案當前處於什麼狀態,可以用git status 命令。如果在轉殖倉庫之後立即執行此命令,會看到類似這樣的輸出:
新建乙個檔案後的效果是:
使用命令git add 開始跟蹤乙個新檔案。
1 git add test.txt此時再執行git status 命令:現在我們修改下之前已跟蹤過的文。
要暫存這次更新,需要執行git add 命令(這是個多功能命令,根據目標檔案的狀態不同,此命令的效果也不同:可以用它開始跟蹤新檔案,或者把已跟蹤的檔案放到暫存區,還能用於合併時把有衝突的檔案標記為已解決狀態等)。
現在讓我們執行git add 將benchmarks.rb 放到暫存區,然後再看看git status的輸出:
實際上git 只不過暫存了你執行git add 命令時的版本,如果現在提交,那麼提交的是之前的版本,而非當前工作目錄中的版本。所以,執行了git add 之後又作了修訂的檔案,需要重新執行git add 把最新版本重新暫存起來。
一般我們總會有些檔案無需納入git 的管理,也不希望它們總出現在未跟蹤檔案列表。通常都是些自動生成的檔案,像是日誌或者編譯過程中建立的等等。我們可以建立乙個名為.gitignore 的檔案,列出要忽略的檔案模式。
檔案.gitignore 的格式規範如下:
所謂的glob 模式是指shell 所使用的簡化了的正規表示式。星號(*)匹配零個或多個任意字元;[abc] 匹配任何乙個列在方括號中的字元(這個例子要麼匹配乙個a,要麼匹配乙個b,要麼匹配乙個c);問號(?)只匹配乙個任意字元;如果在方括號中使用短劃線分隔兩個字元,表示所有在這兩個字元範圍內的都可以匹配(比如[0-9] 表示匹配所有0 到9 的數字)。
實際上git status 的顯示比較簡單,僅僅是列出了修改過的檔案,如果要檢視具體修改了什麼地方,可以用git diff 命令。稍後我們會詳細介紹git diff,不過現在,它已經能回答我們的兩個問題了:當前作的哪些更新還沒有暫存?有哪些更新已經暫存起來準備好了下次提交? git diff 會使用檔案補丁的格式顯示具體新增和刪除的行。
要檢視尚未暫存的檔案更新了哪些部分,不加引數直接輸入git diff:
此命令比較的是工作目錄中當前檔案和暫存區域快照之間的差異,也就是修改之後還沒有暫存起來的變化內容。
若要看已經暫存起來的檔案和上次提交時的快照之間的差異,可以用git diff --staged 命令。
請注意,單單git diff 不過是顯示還沒有暫存起來的改動,而不是這次工作和上次提交之間的差異。所以有時候你一下子暫存了所有更新過的檔案後,執行git diff 後卻什麼也沒有,就是這個原因。
現在的暫存區域已經準備妥當可以提交了。在此之前,請一定要確認還有什麼修改過的或新建的檔案還沒有git add 過,否則提交的時候不會記錄這些還沒暫存起來的變化。所以,每次準備提交前,先用git status 看下,是不是都已暫存起來了,然後再執行提交命令git commit。
記住,提交時記錄的是放在暫存區域的快照,任何還未暫存的仍然保持已修改狀態,可以在下次提交時納入版本管理。每一次執行提交操作,都是對你專案作一次快照,以後可以回到這個狀態,或者進行比較。
儘管使用暫存區域的方式可以精心準備要提交的細節,但有時候這麼做略顯繁瑣。git 提供了乙個跳過使用暫存區域的方式,只要在提交的時候,給git commit 加上-a 選項,git就會自動把所有已經跟蹤過的檔案暫存起來一併提交,從而跳過git add 步驟。
要從git 中移除某個檔案,就必須要從已跟蹤檔案清單中移除(確切地說,是從暫存區域移除),然後提交。可以用git rm 命令完成此項工作,並連帶從工作目錄中刪除指定的檔案,這樣以後就不會出現在未跟蹤檔案清單中了。
如果只是簡單地從工作目錄中手工刪除檔案,還必須再執行git rm 記錄此次移除檔案的操作。
最後提交的時候,該檔案就不再納入版本管理了。如果刪除之前修改過並且已經放到暫存區域的話,則必須要用強制刪除選項-f(譯註:即force 的首字母),以防誤刪除檔案後丟失修改的內容。
另外一種情況是,我們想把檔案從git 倉庫中刪除(亦即從暫存區域移除),但仍然希望保留在當前工作目錄中。換句話說,僅是從跟蹤清單中刪除。比如一些大型日誌檔案或者一堆.a 編譯檔案,不小心納入倉庫後,要移除跟蹤但不刪除檔案,以便稍後在.gitignore檔案中補上,用--cached 選項即可。
Git常用命令一
一 以下命令主要用於完成提交 檢出等基本任務 將 提交的第一步,先將本地 新增到緩衝區 然後從緩衝區提交到本地版本庫,最後從本地版本庫提交到 伺服器 git伺服器 1 將檔案新增到緩衝區 git add git add 並不是只完成將非版本管控下的檔案新增到版本管控中,還完成將檔案提交到快取區,即打...
Git常用命令(一)
關聯賬戶 git config global user.name your name 你的提交使用者名稱 git config global user.email your email 你的郵箱初始化git倉庫 git init拉去倉庫的專案 git clone 倉庫位址將本地專案推送到遠端倉庫 g...
Git常用命令 一
git本地有三個工作區域 工作目錄 working directory 暫存區 stage index 資源庫 repository或git directory 如果在加上遠端的git倉庫 remote directory 就可以分為四個工作區域 這些區域我們可以通過一些簡單的命令就是可以操作了 1...