我 Git 命令列表 (1)【转】
因为我的记忆力差长期在命令中,我会写下我知道的Git命令。
此列表是为我引用只写的。因此,我不会包括一切。我要去写一些基本的东西,所以,如果我忘记了它,我可以查看它。如果你想要的命令的详细的解释,而是找到文档。如果您遇到了一个问题,使用 Git,最好的老师是,一般情况下,一个搜索引擎。
初始设置
请参阅Pro Git节 1.5.
我推荐新的 Git 用户设置的配置变量push.default
使用git config
与--global
选项,让 Git 保存中的变量~/.gitconfig
以避免在这里所示的警告.1由于我有限的了解 Git,我找不到的方式来禁止显示警告后阅读的堆栈溢出的问题。我终于搞明白了阅读的中国的博客,发现在第一个脚注之后。
初始化存储库
$ git init
$ git init --bare
第一,它是用于存储库,其中包含的源代码的常用命令。第二个,它可以用于在远程服务器上。2
注意:"运行git init
在现有的存储库是安全的。3
克隆存储库
从这里,我知道一个可以传递--bare
选项git clone
.
$ git clone --bare repo.old repo
在上述命令中,repo.old
是一个旧的存储库,和一个创建新的裸存储库repo
从那老非裸存储库。
从远程资源库得到东西
有基本的命令:git pull
, git fetch
和git merge
.大体说来,第一个是"总和"的以下两个。
$ git fetch # fetch from origin/upstream
$ git fetch host # fetch all branches from remote "host"
$ git fetch host foo # fetch branch "foo" from remote "host"
注意: 在上面的代码块,pull
可以代替pull
.
其实合并分支之前, 我们能先看一下他们之间的分歧。
查看差异
我只知道git diff
.
基本用法
如果你写的东西和尚未提交您的更改,则可以签发git diff
在终点,看您未提交的更改和最新提交的区别。-
代表老的承诺的内容而+
表示更新未提交的更改。
比较旧属同一分支中支一角
只追加 40 位数 sha-1 哈希的交托的头七位数git diff
会做。
比较的分支机构
我发现在官方的参考页。(URL)的<1>
窗体工作好则origin/source
和octoress/linklog
在~/octopress
.然而,我还没完全理解此命令。
$ git diff origin/source source
fatal: ambiguous argument 'source': both revision and filename
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
(添加在 2014 年 8 月 7 日)
现在我知道如何更正上面的 Git 命令。指我更新的帖子在 Git Diff 双连字符.
添加删除文件
有三个基本的命令:
git add
git mv
git rm
看到这里之间的差异git add -A
和git add .
.
$ git add <file>... # Add <file> to the staging area
$ git add . # Add all modified/new files that are tracked
$ git add -A # The '-A' flag stands for "all"
$ git mv <file> <new dir/path> # move the file and record the action in Git
$ git rm <file> # delete a file and record the action in Git
我读过解释的区别简化中国博客git rm
和rm
. (URL)
你可能会包括一些未跟踪的文件中.gitignore
所以,这些文件将被忽略的 Git。
提交更改
唯一的命令是git commit
.有一个可以使某些基本选项使用。
-a
(又称--all
): 提交的所有跟踪文件的更改。--amend
: 更改提示工作分支的提交消息。-m <msg>
(又称--message
): 直接输入提交消息。
如果-m
使用标志,然后编辑器窗口,会被调用。在编辑器窗口,其中包含提交消息,第一行是标题中提交,而第二行应该留为空白。后续的行,是始于#
是提交消息的内容。
如果你想恢复git commit --amend
您可以参考我之前的帖子.
还原更改
对我来说,它是这篇文章的最重要组成部分。我只知道两个命令为这种类型的任务。
$ git reset HEAD <file>... # unstage <file>
$ git reset HEAD --soft # unstage all uncommitted chanages without changing the file(s)
$ git reset HEAD --hard # revert the files to the latest commit
$ git checkout -- <file>... # undo all uncommitted changes to <file>
使用分支
我知道这是一项重要功能的 Git,,但不要,很多时候现在,所以我只是包括一些简单的命令在这里。
$ git branch # list all branches, excluding the remote ones
$ git branch --list # same as above
$ git branch -a # list all branches, including the remote ones
$ git branch foo # create `foo' branch from the current one
$ git checkout foo # switch to `foo' branch from the current one
$ git checkout -b foo # the "sum" of the above two commands
$ git branch -d foo # delete `foo' branch
$ git checkout --orphan foo # create a new orphan branch named `foo'
当我开始使用 Octopress,我并不熟悉 Git。因此,我搞砸了处理分支和这个博客我 Git 仓库的网络图的命令。
显示历史记录
还有一种 GUI 方式这样做。
$ git show # Show the diff hunks of recent commits
$ git log # Show the commits without diff hunks
$ git log -6 # Show the 6 most recent commits
$ git log -p # Show the commits with diff hunks
没有-p
国旗,git log
将显示用户的名称和电子邮件,时间、 沙 1 哈希、 头和每次提交的内容但diff hunk(s)。浏览通过提交在关键的动作git log
是类似于那些在less
实用程序。如果指定的提交并不是数量,一个可以通过滚动到底部浏览整个提交历史。
你可以使用git show
若要设置格式的输出,但也没学到的。
盼望写第二个列表,但我不认为我可以在未来几个月。
一些题外话东西
gitk
一个可以调用gitk
这是一个 GUI 工具用于查看显示历史的 Git 提交,如果他/她不想学的上述部分中的命令。
fugitive.vim
(编辑在 2016 年 2 月 9 日)
fugitive.vim是一个伟大的 Vim 插件。
:Gst[atus] # Show the `git status' on a horizontal split window
:Git <command> # Equivalent to `:!git <command>'
:Glog # Show commits of the current file in a quickfix list
:Gllog # Show commits of the current file in a location list
:Glog -- # Show all commits of the current branch as diff hunks
:Glog -- % # Show all commits containing the current file as diff hunks
:Glog -- foo # Show all commits containing the file `foo' as diff hunks
我不知道的使用:Glog
.
内Gstatus
您可以方便地添加/删除文件从临时区域。
<C-n>
和<C-p>
分别跳转到的下一页和上一页的文件。cc
对于 Git commit。g?
调用可以在中使用的键映射列表:Gstatus
帮助窗口。D
就像是git diff
但与布局vimdiff
.默认情况下,一个窗口是在另一个上面。dv
就像是D
但一个窗口是对他人的权利。