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