GIT CLONE 命令 java
將存儲庫克隆到新建立的目錄中,爲克隆的存儲庫中的每一個分支建立遠程跟蹤分支,並從克隆的存儲庫做爲當前活動分支的初始分支。 jquery
命令格式: git
git clone [--template=<template_directory>] [-l] [-s] [--no-hardlinks] [-q] [-n] [--bare] [--mirror] [-o <name>] [-b <name>] [-u <upload-pack>] [--reference <repository>] [--dissociate] [--separate-git-dir <git dir>] [--depth <depth>] [--[no-]single-branch] [--recurse-submodules] [--[no-]shallow-submodules] [--jobs <n>] [--] <repository> [<directory>] github
命令示例: 服務器
克隆指定的存儲庫: fetch
$git clone https://github.com/jquery/jquery.git ui
克隆指定的存儲庫的分支並存儲到本地 jquery-2.2 的目錄中: atom
$git clone -b 2.2-stable https://github.com/jquery/jquery.git jquery-2.2 url
此默認配置經過在refs/remotes/origin下建立對遠程分支頭的引用,並經過初始化 remote.origin.url 和remote.origin.fetch 配置變量來實現 spa
GIT ADD 命令
此命令將要提交的文件的信息添加到索引庫中(將修改添加到暫存區),以準備爲下一次提交分段的內容。 它一般將現有路徑的當前內容做爲一個總體添加,可是經過一些選項,它也能夠用於添加內容,只對所應用的工做樹文件進行一些更改,或刪除工做樹中不存在的路徑了,默認狀況下,git add命令不會添加忽略的文件。 若是在命令行上顯式指定了任何忽略的文件,git add命令都將失敗,並顯示一個忽略的文件列表。由 Git 執行的目錄遞歸或文件名遍歷所致使的忽略文件將被默認忽略。 git add命令能夠用-f(force)選項添加被忽略的文件。
命令格式:
git add [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p] [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]] [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--chmod=(+|-)x] [--] [<pathspec>…]
命令示例:
添加 src/mian/java 目錄及其子目錄下全部 *.java 文件的內容:
$ git add src/mian/java *.java
將全部修改添加到暫存區:
$ git add .
Ant 風格將全部修改添加到暫存區:
$ git add *
將以Controller結尾的文件的全部修改添加到暫存區
$ git add *Controller
經常使用選項:
git add -u [<path>]: 把<path>中全部跟蹤文件中被修改過或已刪除文件的信息添加到索引庫。它不會處理那些不被跟蹤的文件。省略<path>表示 . ,即當前目錄。
git add -A [<path>] : 從全部跟蹤和未跟蹤的文件中添加更改添加到索引庫。省略<path>表示 . ,即當前目錄。
git add -i [<path>]:命令以交互模式查看被全部修改過或已刪除文件但沒有提交的文件,並經過其 revert 子命令能夠查看<path>中全部未跟蹤的文件
GIT RM 命令
命令用於從工做區和索引中刪除文件。從索引中刪除文件,或從工做樹和索引中刪除文件。
命令格式:
git rm [-f | --force] [-n] [-r] [--cached] [--ignore-unmatch] [--quiet] [--] <file>…
命令示例:
刪除 text1.txt文件,並把它從git的倉庫管理系統中移除:
$ git rm text1.txt
刪除文件夾:mydir,並把它從git的倉庫管理系統中移除:
$ git rm -r mydir
從索引庫刪除 10.txt 文件,這個不會對文件自己進行刪除操做:
$git rm --cached 10.txt
從索引庫刪除 以 .iml 結尾的文件:
git rm --cached *.iml
GIT MV 命令
命令用於移動或重命名文件,目錄或符號連接。
命令格式:
git mv [-v] [-f] [-n] [-k] <source> <destination>
git mv [-v] [-f] [-n] [-k] <source> ... <destination directory>
在第一種形式中,它將重命名 <source>爲<destination>,<source>必須存在,而且是文件,符號連接或目錄。 在第二種形式中,<destination directory> 參數必須是現有的目錄,給定的源(<source>)將被移動到這個目錄中,索引在成功完成後更新,但仍必須提交更改。
命令示例:
把一個文件 text.txt 移動到 mydir:
$ git mv text.txt mydir
把一個文件 text.txt 修更名稱爲 text.java :
$git mv text.txt text.java
GIT COMMIT 命令
命令用於將更改記錄(提交)到存儲庫。將索引的當前內容與描述更改的用戶和日誌消息一塊兒存儲在新的提交中。要添加的內容能夠經過如下幾種方式指定:
命令格式:
git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
[--dry-run] [(-c | -C | --fixup | --squash) <commit>]
[-F <file> | -m <msg>] [--reset-author] [--allow-empty]
[--allow-empty-message] [--no-verify] [-e] [--author=<author>]
[--date=<date>] [--cleanup=<mode>] [--[no-]status]
[-i | -o] [-S[<keyid>]] [--] [<file>…]
命令示例:
使用 git add 命令增長文件到索引庫,而後提交到存儲庫,使用 -m 參數能夠增長提交的描述信息:
$ git add .
$ git add newfile.txt
$ git commit -m "the commit message"
會先把全部已經追蹤的文件的改動 git add 進來,而後提交,對於沒有追蹤的文件,仍是須要執行 git add 命令:
$ git commit -a
在更改許多文件以後,能夠經過給出 git commit 的路徑名來更改記錄更改的順序。當給定路徑名時,該命令提交只記錄對命名路徑所作的更改:
$ edit hello.c hello.h # 修改了這兩個文件的內容
$ git add hello.c hello.h
$ edit Makefile
$ git commit Makefile
注意:
若是您提交,而後當即發現錯誤,可使用 GIT RESET 命令恢復;該命令不是提交到 Git 倉庫,只是提交到本地的存儲庫,若是須要提交到 Git 倉庫,還須要執行 GIT PUSH 命令;
GIT FETCH 命令
命令用於從另外一個存儲庫下載對象和引用。從一個或多個其餘存儲庫中獲取分支或標籤。
理解 fetch 的關鍵, 是理解 FETCH_HEAD,FETCH_HEAD 指的是某個分支在服務器上的最新狀態。這個列表保存在 .git/FETCH_HEAD 文件中, 其中每一行對應於遠程服務器的一個分支。當前分支指向的 FETCH_HEAD, 就是這個文件第一行對應的那個分支。通常來講, 存在兩種狀況:
命令格式:
git fetch [<options>] [<repository> [<refspec>…]]
git fetch [<options>] <group>
git fetch --multiple [<options>] [(<repository> | <group>)…]
git fetch --all [<options>]
命令示例:
遠程的 origin 倉庫的 master 分支下載代碼到本地的 origin\master,比較本地的倉庫和遠程倉庫的區別,最後合併到本地倉庫:
$ git fetch origin master
$ git log -p master.. origin/master
$ git merge origin/master
從遠程的 origin 倉庫的 master 分支下載到本地並新建一個分支 temp,比較 master 分支和 temp 分支的不一樣,最後移除 temp 分支:
$ git fetch origin master:temp
$ git diff temp
$ git branch -d temp
GIT PULL 命令
命令用於從另外一個存儲庫或本地分支獲取併合並。將遠程存儲庫中的更改合併到當前分支中。在默認模式下,git pull是 git fetch後跟git merge FETCH_HEAD的縮寫。更準確地說,git pull使用給定的參數運行 git fetch,並調用 git merge 將檢索到的分支頭合併到當前分支中。 使用--rebase,它運行git rebase而不是git merge
命令格式:
git pull [options] [<repository> [<refspec>…]]
命令示例:
從 origin倉庫獲取master 分支的最新版本併合併到本地:
$ git pull origin master
GIT PUSH 命令
命令用於將本地分支的更新,推送到遠程主機。當命令行不指定使用 <repository> 參數推送的位置時,將查詢當前分支的branch.*.remote配置以肯定要在哪裏推送。 若是配置丟失,則默認爲 origin
命令格式:
git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
[--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
[-u | --set-upstream] [--push-option=<string>]
[--[no-]signed|--sign=(true|false|if-asked)]
[--force-with-lease[=<refname>[:<expect>]]]
[--no-verify] [<repository> [<refspec>…]]
命令示例:
將本地的master分支推送到origin主機的master分支。若是master不存在,則會被新建:
$ git push origin master
若是省略本地分支名,則表示刪除指定的遠程分支,由於這等同於推送一個空的本地分支到遠程分支:
$ git push origin :dev
# 等同於
$ git push origin --delete dev
當前分支與遠程分支之間存在追蹤關係,則本地分支和遠程分支均可以省略:
$ git push origin
若是當前分支只有一個追蹤分支,那麼主機名均可以省略
$ git push