Git 學習筆記 —— 基礎
獲取 Git 倉庫
獲取 Git 項目倉庫的方法有兩種:
- 從本地目錄中導入所有文件到 Git 中
- 從一個服務器下載現有的 Git 倉庫
從現有目錄中初始化倉庫
進入該目錄
$git init
該命令創建一個名為 .git 的子目錄,這個子目錄含有你初始化的 Git 倉庫中所有的必須文件。
克隆現有的倉庫
克隆倉庫的命令格式是 git clone [url]
$ git clone [url]
記錄每次更新到倉庫
在工作目錄下的文件只有兩種狀態: 已跟蹤 和 未跟蹤 。
已跟蹤的文件 就是納入了版本管理的文件,它們也有三種狀態: 未修改 、 已修改 、 已放入暫存區 。工作區中除了已跟蹤的文件,其他都是 未跟蹤的文件 。
初次 克隆 某個倉庫的時候,所有文件屬于 已跟蹤 文件,并處于 未修改 狀態。
檢查當前文件的狀態
要查看哪些文件處于什么狀態,可以使用下面的命令。
$ git status
使用 git status -s 或者 git status --short 會得到緊湊的輸出。
跟蹤新文件
使用 git add 命令開始跟蹤一個文件,這是一個多功能命令。
$ git add <filename>
管理修改過的文件
暫存已修改文件
要暫存修改過的文件,需要運行 git add 命令。
$ git add <filename>
撤銷暫存的文件
$ git reset HEAD <filename>
撤銷對文件的修改
$ git checkout -- <filename>
這個命令是很危險的,一旦使用了這個命令,那對這個文件做的任何修改都會消失,回不來了。
忽略文件
在目錄下創建一個 .gitignore 文件,列出要忽略的文件模式,格式規范如下:
- 所有空行或以 # 開頭的行都被忽略
- 可以使用標準的 glob 模式匹配
- 匹配模式可以以 / 開頭防止遞歸
- 匹配模式可以以 / 結尾指定目錄
- 要忽略指定目錄以外的文件,可以用 ! 取反
glob 模式
所謂 glob 模式是指 `` 使用的簡化了的正則表達式。
- * 匹配零或多個任意字符
- [abc] 匹配任意一個列在方括號里面的字符
- ? 只匹配一個任意字符
- [0-9] 匹配兩個字符范圍內所有字符
- ** 匹配任意中間目錄 a/**/z ,匹配 a/z a/b/z a/b/c/z
查看已暫存和未暫存的修改
要查看未暫存的文件更新了哪些部分,不加參數直接輸入 git diff
$git diff
此命令比較的是工作目錄中 當前文件 和 暫存區快照 之間的差異,也就是說,當你暫存了所有修改過的文件之后,運行 git diff 是不會有什么輸出的。
若要查看已暫存的內容,可以用以下命令
$ git diff --staged
提交更新
提交時記錄的是放在暫存區的快照,任何未暫存的仍然保持已修改狀態,可以在下次提交時納入版本管理。
$git commit -m '簡短的提交信息'
跳過使用暫存區
把所有已經跟蹤過的文件暫存起來一并提交,跳過 git add 步驟,給 git commit 加上 -m 選項。
$ git commit -a -m '簡短的提交信息'
修改提交
提交完發現漏了文件沒有提交,或者提交信息填錯了。此時可以運行帶有 --amend 選項的提交命令嘗試重新提交。
$ git commit --amend
提交后發現忘記了暫存某些需要的修改,可以像下面這樣操作:
$ git commit -m 'init commit' $ git add forgotten_file $ git add --amend
這樣,第二次的提交將代替第一次提交。
移除文件
要從 Git 中移除某個文件,必須從已跟蹤文件清單中移除,然后提交。
$ git rm < 列出文件名 | 目錄名 | glob 模式 >
強制刪除
如果要刪除的文件已經修改過,并且已經放到了暫存區,就需要強制刪除 -f (force)
$ git rm -f <files>
取消跟蹤
如果想讓文件繼續留在磁盤,但是并不想讓 Git 繼續跟蹤。
$ git rm --cached <files>
文件重命名
$ git mv old_name new_name
運行 git mv 等于運行了下面三條命令
$ mv README.md README $ git rm README.md $ git add README
查看提交歷史
$ git log
不加任何參數, git log 會按提交時間列出所有更新,最近的更新放在上面。
遠程倉庫的使用
遠程倉庫是指托管在因特網或其他網絡中你項目中的版本庫。
查看遠程倉庫
如果想查看你已經配置的遠程倉庫服務器,可以運行 git remote 命令。它會列出你指定的每一個遠程服務器的簡寫。
$git remote
也可以指定選項 -v ,會顯示需要讀寫遠程倉庫使用 Git 保存的簡寫以及其對應的 URL
$git remote -v
如果你的遠程倉庫不止一個,該命令會將他們全部列出。
添加遠程倉庫
$ git remote add <shortname> <url>
添加一個新的遠程 Git 倉庫,同時指定一個你可以輕松引用的簡寫。
來自:http://mertensming.github.io/2016/11/07/learn-git-0/