#[root@localhost go_dev_dir]# git --help
usage: git [--version] [--help] [-C <path>] [-c <name>=<value>]
[--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
[-p | --paginate | -P | --no-pager] [--no-replace-objects] [--bare]
[--git-dir=<path>] [--work-tree=<path>] [--namespace=<name>]
[--super-prefix=<path>] [--config-env=<name>=<envvar>]
<command> [<args>]
# 这些是在各种情况下使用的常见Git命令:
These are common Git commands used in various situations:
#启动一个工作区域(参见: git help tutorial)
start a working area (see also: git help tutorial)
clone Clone a repository into a new directory
init Create an empty Git repository or reinitialize an existing one
# 处理当前更改(另请参阅: git help everyday)
work on the current change (see also: git help everyday)
add Add file contents to the index
mv Move or rename a file, a directory, or a symlink
restore Restore working tree files
rm Remove files from the working tree and from the index
# 检查历史和状态(另请参阅: git help revisions)
examine the history and state (see also: git help revisions)
bisect Use binary search to find the commit that introduced a bug
diff Show changes between commits, commit and working tree, etc
grep Print lines matching a pattern
log Show commit logs
show Show various types of objects
status Show the working tree status
# 成长,标记和调整你们的共同历史
grow, mark and tweak your common history
branch List, create, or delete branches
commit Record changes to the repository
merge Join two or more development histories together
rebase Reapply commits on top of another base tip
reset Reset current HEAD to the specified state
switch Switch branches
tag Create, list, delete or verify a tag object signed with GPG
# 协作(参见: git help workflows)
collaborate (see also: git help workflows)
fetch Download objects and refs from another repository
pull Fetch from and integrate with another repository or a local branch
push Update remote refs along with associated objects
'git help -a' and 'git help -g' list available subcommands and some
concept guides. See 'git help ' or 'git help '
to read about a specific subcommand or concept.
See 'git help git' for an overview of the system.
Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100
。
Git 撤销commit文件 和 回退push的文件
重置当前HEAD到指定状态
git reset [<mode>] [<commit>]
或
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
该格式将当前分支head
重置为
,并可能更新索引(将其重置为
的树),根据
更新工作目录树。如果省略
,默认为--mixed
。
可以是以下类型之一:
--soft
根本不触及索引文件或工作目录树(但将head
重置为
,就像所有模式一样)。这将使所有更改过的文件"Changes to be committed",正如git status
所展示。
--mixed
重置索引,但不重置工作树(即,更改的文件被保留,但未标记为提交),并报告未更新的内容。这是默认操作。
如果指定了-N
,则将删除的路径标记为有意添加的路径(see git-add(1))
--hard
重置索引和工作树。自
以来对工作树中跟踪文件的任何更改都将被丢弃。
…
回退到上一个版本:
git reset --hard HEAD^
git log
命令显示从最近到最远的提交日志
如果嫌输出信息太多,看得眼花缭乱的,可以试试加上--pretty=oneline
参数
git log --pretty=oneline --abbrev-commit
it reflog用来记录你的每一次命令
git restore --staged …" to unstage
“git restore …” to discard changes in working directory
use “git reset HEAD …” to unstage
“git checkout – …” to discard changes in working directory
git checkout – file命令中的--
很重要,没有--
,就变成了“切换到另一个分支”的命令,我们在后面的分支管理中会再次遇到git checkout命令。
git tag [-a | -s | -u
-a, --annotate
制作一个无符号、带注释的tag对象
-m
使用给定的标记消息(而不是提示)
git tag <name> # 打一个新标签
默认标签是打在最新提交的commit上的
git tag #查看所有标签
给指定的提交版本创建一个 【轻量标签】
#在某个commit id上打tag
git tag <name> <commitId>
git show <tagname> #查看标签信息:
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字:
$ git tag -a v0.1 -m "version 0.1 released" 1094adb
如果标签打错了,也可以删除:
git tag -d v0.1
如果要推送某个标签到远程,使用命令git push origin
或者,一次性推送全部尚未推送到远程的本地标签:
git push origin --tags
如果标签已经推送到远程,要删除远程标签就麻烦一点,先从本地删除:
git tag -d v0.9
然后,从远程删除。删除命令也是push,但是格式如下:
git push origin :refs/tags/v0.9
显示工作树(working tree)状态
git status [<options>…] [--] [<pathspec>…]
显示索引文件和当前HEAD
提交之间有差异的路径,工作树和索引文件之间有差异的路径,以及工作树中没有被Git跟踪的路径(并且没有被gitignore(5)忽略)。第一个是你可以通过运行git commit
来提交的;第二个和第三个是你可以在运行git commit
之前先运行git add
来提交的。
管理一组跟踪的存储库
git remote add [-t <branch>] [-m <master>] [-f] [--[no-]tags]
[--mirror=<fetch|push>] <name> <url>
为的存储库添加一个名为的远程服务器。然后,命令git fetch 可以用来创建和更新远程跟踪的分支
git remote rm
更新远程引用和相关对象
把本地库的内容推送到远程,
git push [--all | --mirror | --tags] [--follow-tags] [-n |
--dry-run] [--receive-pack=<git-receive-pack>]
[--repo=<repository>] [-f | --force] [--prune] [-v | --verbose]
[-u | --set-upstream] [<repository> [<refspec>...]]
-u, --set-upstream
对于每个最新或成功推送的分支,添加upstream (tracking)引用,由无参数的git-pull(1)和other使用命令。
“远程”存储库,它是push操作的目的地。这个参数可以是一个URL(参见下面的GIT URL一节)或者
远程服务器的名称(请参阅下面的远程服务器一节)
指定要用什么源对象更新什么目标引用。参数的格式是 [+]
通常是你想推送的分支的名称,但它可以是任意的“SHA-1表达式”,例如master~4或HEAD
告诉使用此推送更新远程端的哪个ref。这里不能使用任意表达式,必须使用实际的ref命名。如果:被省略,与相同的ref将被更新。
git fetch [<options>] [<repository> [<refspec>...]]
从一个或多个存储库中获取命名的头或标记,以及完成它们所需的对象。
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[-s <strategy>] [-X <strategy-option>]
[--[no-]rerere-autoupdate] [-m <msg>] [<commit>...]
Fetch from and merge with另一个存储库或本地分支
git pull [options] [<repository> [<refspec>...]]
在仓库所在的目录(F:\repository)点击右键选择“Git Bash Here”,启动git bash程序。
然后在git bash中执行如下语句:
git remote add origin [email protected]:it/mytest.git
git push -u origin master
其中:origin就是一个名字,它是在你clone一个托管在Github上代码库时,git为你默认创建的指向这个远程代码库的标签, origin指向的是repository,master只是这个repository中默认创建的第一个分支。
git remote rm origin #表示删除origin
将存储库克隆到新目录中
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] [--no-tags]
[--recurse-submodules[=<pathspec>]] [--[no-]shallow-submodules]
[--[no-]remote-submodules] [--jobs <n>] [--sparse] [--[no-]reject-shallow]
[--filter=<filter> [--also-filter-submodules]] [--] <repository>
[<directory>]
-b
不要将新创建的 HEAD 指向克隆存储库的 HEAD 所指向的分支,而是指向
分支。在非空存储库中,这是将被检出的分支。--branch
也可以取标签(tags)并在结果存储库中分离提交时 HEAD。
--depth
创建一个浅克隆,其历史记录被截断为指定的提交次数。意味着--single-branch
,除非 --no-single-branch
被指定用于获取所有分支尖端附近的历史。如果你想浅层克隆子模块,也可以传入--shallow-submodules
。
解决方法:可以从以下两个地方下载比较权威的man page文档(Git 2.39.1.231):
http://code.google.com/p/git-core/downloads/list
从以下地址git clone
git://git.kernel.org/pub/scm/git/git-manpages.git
https://git.kernel.org/pub/scm/git/git-manpages.git
https://kernel.googlesource.com/pub/scm/git/git-manpages.git