Git操作指令
- 系統配置
- 基本命令
- 獲取/刪除Git倉庫
- 更新記錄
- 撤銷操作
- 遠程倉庫的使用
- 分支系統
系統配置
git config
為系統自帶的配置指令,它可以控制GIT的行為和外觀
配置用戶信息
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
--global
選項表示全局,只需要運行一次,如果沒有特別配置,那么都將使用上述配置信息
如果需要為某個項目單獨設置用戶名和郵箱,運行沒有--global
選項的指令即可git config user.name "Tom Hasns"
配置默認文本編輯器
git config --global core.editor emacs
設置emacs為默認的文本編輯器,emacs是Linux和Mac上常用的文本編輯器
檢查配置
使用git config --list
檢查配置,也可以使用git config <key>
單獨檢查某項配置,如git config user.name
獲取幫助
有三種方式可以獲取幫助 git help <verb>
, git <verb> --help
, man git-<verb>
基本命令
獲取/刪除Git倉庫
獲取Git倉庫的方式有兩種,第一種是在現有項目或目錄下導入所有文件到 Git 中; 第二種是從一個服務器
克隆一個現有的 Git 倉庫
創建倉庫 git init
,在當前文件夾創建一個名為.git的子目錄,該目錄中包含Git倉庫所有的必須文件,并且該目錄為隱藏屬性
克隆倉庫 git clone <url>
,會在當前文件夾創建目標項目文件夾,然后將目標項目文件及倉庫全部下載到目標文件夾中,值得注意的是,該命令只能下載當前活動分支。也可以指定目標文件夾git clone <url> <dirname>
刪除倉庫 git rm -rf .git
,實際上就是刪除.git文件夾,使用命令行刪除或者手動刪除都可以
更新記錄
檢查文件狀態 git status
跟蹤新文件 / 暫存已修改文件 git add <filename>
忽略文件touch .gitignore
,創建一個名為 .gitignore的文件(手動創建也可以), cat .gitignore
查看/列出要忽略的文件模式
提交更新git commit
,提交更新時,默認只會提交暫存區里的文件,并且調用默認文本編輯器以便輸入本次提交的說明,推薦使用-m
選項的方式輸入提交說明git commit -m "commit explain"
還可以使用-a
選項來跳過暫存區,將所有已跟蹤文件暫存起來一并提交git commit -a -m "all file"
移除文件git rm
從跟蹤文件清單中移除,并且將實際文件一并刪除,-f
強制刪除,--cached
從倉庫中移除并且不再跟蹤,但保留實際文件
移動文件git mv <file_from> <file_to>
移動文件指令也可以對用于對文件改名
查看提交歷史git log
,-p
用來顯示每次提交的內容差異,也可以使用-2
來查看最近2次的提交內容
撤銷操作
當操作錯誤時,我們通常需要用到撤銷操作,以便重新提交,下面幾個方法可以達到類似效果
重新提交 git commit --amend
當我們提交完后發現漏掉幾個文件沒有添加,或者提交提交信息寫錯了,可以運行帶有--amend
選項的提交命令嘗試重新提交,它將覆蓋上一次的提交結果
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
取消暫存文件 假如修改了兩個文件,希望他們作為兩次獨立提交,但是卻意外地輸入了git add *
暫存了它們兩個。 如何只取消暫存兩個中的一個呢?git status
命令給出了提示(use "git reset HEAD <file>..." to unstage)
,使用git reset HEAD <file>...
撤銷對文件的修改 git checkout -- <file>...
將文件還原成上一次提交的狀態
遠程倉庫的使用
查看遠程倉庫 git remote
命令會列出你指定的每一個遠程倉庫的簡寫,如果克隆了一個倉庫,那至少可以看到origin,這是Git給克隆倉庫服務器的默認名字,使用-v
選項可以看到遠程倉庫簡寫和對應的URL
添加遠程倉庫git remote add <shortname> <url>
拉取數據 git fetch [remote-name] [branch-name]
從遠程倉庫中拉取所有你還沒有的數據,執行完后將擁有遠程倉庫中所有分支
git pull [remote-name] [branch-name]
推送數據 git push [remote-name] [branchname]
將數據推送到遠程分支
分支系統
查看分支 git branch
,-r
查看遠程分支,-a
查看所有分支(遠程和本地),-v
查看每一個分支最后一次提交
創建分支 git branch <branch-name>
,-d
刪除分支
切換分支 git checkout <branch-name>
,-b
創建并切換到該分支
合并分支 git merge <branch-name>
將branch-name分支合并到當前分支