以上這些操作,就是本文要講述的內容,但是首先,我們必須獲取乙個git倉庫。[/size]
[size=medium][b]1,取得專案的git倉庫[/b][/size]
[size=small] 通常情況下有兩種獲得git倉庫的方式,一種是從自己已有的目錄下建立新的git倉庫,一種是從已有的倉庫中轉殖出新的映象倉庫。
[b]1.1,從工作目錄中新建倉庫[/b]
$ git init
執行該命令後,當前工作目錄下會出現乙個名為.git的目錄,這就是之前說的git目錄,它儲存了所有git需要的資料和資源。
此時,我們還未將任何檔案新增到git的跟蹤清單中。
[b]1.2,從已有倉庫中轉殖[/b]
$ git clone [url] [name]
執行該命令會在當前目錄下建立乙個以該專案名為名稱的目錄(如果指定了name,則為name),其中包含乙個.git目錄。
然後從git目錄下提取出當前最新的版本的所有檔案,作為當前的工作目錄。也就是說,此時,當前工作目錄下所有的檔案都是被git管理的。
[/size]
[size=medium][b]2,記錄每次更新(管理檔案的狀態)[/b][/size]
當然,必不可少的,我們也需要進行一些撤銷的操作,比如將檔案從暫存區中撤回,取消對檔案的修改等。
下面就來具體說說這些操作的實現。
[b] 2.1,將檔案快照送到暫存區:git add[/b]
核心功能:
1,將新檔案(未跟蹤)新增到跟蹤清單中,並生成快照,儲存到暫存區域中;
2,將已修改的檔案生成快照,儲存到暫存區域中。
基本用法:
1,git add filename 將該檔案新增到暫存區域,其中filename支援萬用字元。
2,git add -a 將所有未跟蹤的和已修改的檔案(git將忽略掉.gitignore檔案中指定的檔案,下文中會介紹)新增到暫存區域。
[b]2.2,提交暫存區中的快照到git目錄:git commit[/b]
核心功能:
1,將當前暫存區中的快照儲存到git目錄中。注意:只是將暫存區中的快照儲存,如果同乙個檔案在git add 之後,又做了修改,那麼commit只會儲存 git add 命令新增到暫存區中的快照,新的修改不會得到儲存,該檔案將處於已修改狀態。
基本用法:
1,git commit 會進入當前終端預設的編輯器中編輯對本次提交的說明;可以使用git config --global core.editor命令設定使用什麼編輯軟體。
2,git commit -m 『提交說明』 直接在字串中對本次提交進行說明。
3,git commit -a 不經過暫存區域,直接將所有以跟蹤過的檔案直接提交,而跳過 git add 步驟。
[b]2.3,撤銷操作[/b]
git的操作雖然簡單,但是撤銷操作還是非常常用的。
1,修改最後一次提交:git commit --amend
有時候,我們提交完了才發現漏了幾個檔案,或是提交資訊寫錯了,就可以用git commit --amend命令重新提交,該提交會覆蓋掉此前的一次提交。
2,取消已經暫存的檔案:git reset head
有時候,我們錯誤的將乙個檔案加到了暫存區域,比如我們需要將兩個檔案分作兩次提交,卻一起送到了暫存區。此時,我們就需要將相關的檔案從暫存區移除,git reset head 命令就可以取消 filename 檔案的暫存。
3,取消對檔案的修改:git checkout --
有時候,我們想要取消對某個檔案的修改,這時候就可以用git checkout -- 命令。注意,這條命令是不可逆的!因為修改的內容從未提交過,因此對於git而言,它就像沒有存在過一樣。
[/size]
[size=medium][b]3,輔助性操作[/b][/size]
[size=small] 上文中我們介紹了git下管理檔案狀態的3個核心操作,實際上,為了能夠更好的管理檔案狀態,git提供了一些能夠輔助性的命令,接下來就一一介紹。
[b]3.1,忽略不想跟蹤的檔案:配置.gitignore檔案[/b]
核心功能:
上文提到,可以通過 git add -a 命令將所有未跟蹤的和已修改的檔案新增到暫存區,但是工程下總有很多檔案時不需要也不應該用git跟蹤的,比如ide自動生成的檔案,log檔案,一些編譯的中間結果,等等。此時,需要在 .gitignore 檔案中進行配置,使這樣的檔案被忽略。
基本格式:
1,自動忽略空行,以及#開頭的注釋
2,使用標準的glob模式匹配
*匹配任意字串;
[abc]匹配方括號中的任意乙個字元
[a-f]匹配a到f範圍內的任意字元
?匹配乙個任意字元;
3,匹配模式最後跟反斜槓(/)說明要忽略的是資料夾
4,可以在指定模式的前面加上驚嘆號(!)來取反,意為只保留指定模式
[b]3.2,檢視檔案狀態:git status[/b]
核心功能:
1,顯示當前是否存在:a,未跟蹤的檔案(untracked files);b,已修改的檔案(changes not staged for commit);c,在暫存區中待提交的檔案(changes to be committed)。
2,注意,乙個檔案可能同時出現在已修改的檔案和暫存區的檔案中,即當乙個檔案已經被git add新增到暫存區後又做了修改時,就會出現此情況。
[b]3.3,檢視檔案變化的內容:git diff[/b]
核心功能:
1,檢視最近一次快照和當前還未暫存的檔案之間的差異
2,檢視當前暫存的快照和上一次提交的快照之間的差異
基本用法
1,git diff 檢視未暫存的變化
2,git diff --cached 檢視已暫存的變化
[b]3.4,檢視提交的歷史:git log[/b]
核心功能:
1,按照需求檢視所有的提交的歷史
基本用法:
1,git提供了很多選項,基本有以下這些[/size]
[img]
[img]
[size=medium][b]4,檔案管理命令[/b][/size]
[size=small] git中還提供了一些用來管理檔案的命令,如刪除檔案和移動檔案(重新命名)等。
4.1,移除檔案:git rm
核心功能:
1,當要從git目錄中移除某個檔案
2,操作失誤將原本不需要的檔案新增到了跟蹤清單中,想要將它們從中去掉
基本用法:
1,git rm filename:直接刪除該檔案,並從檔案跟蹤清單中移除
2,git rm --cached filename:在工作目錄中保留,但是從檔案跟蹤清單中刪除。
注意:如果只是普通地刪除掉某個檔案,並不會將它從git的跟蹤清單中去除。
4.2,移動檔案:git mv
基本用法:
1,git mv file_from file_to:移動檔案
參考:git官方教程:[url]
學習筆記 02 Git入門
svn是乙個集中式管理工作流 進行管理和維護 使用git管理git 自2005誕生的。分支管理系統。集中式版本控制系統cvcs 分布式版本控制系統dvcs 快速 搞笑儲存 完全分布 簡單 滿足大規模專案需要 操作 版本庫同步 git維護的是乙個全量的變化 修改之後的全部的內容 svn維護的是其中改變...
Git入門教程
1 首先在上註冊乙個賬號.2 註冊成功以後,新建乙個repository 倉庫 新建介面如下 輸入專案名稱,其他全部預設即可 建立成功後,瀏覽器跳轉到乙個新頁面,如下 紅色標註的位址要記住 接下來要用到。這裡提示你如何通過命令列提交專案到你剛才新建的repository。剛才新建repository...
git入門教程
說明 git是乙個很有效的版本管理工具,linux核心就是通過它來管理的,下面是乙個git使用規範,是站在乙個新手的角度寫的,所以詳細而且直接。參考文件 下面的例子在ubuntu 8.10下完成。git的命令有兩種方式如 git show branch 和 git show branch 他們是等價...