Chapter 1

配置使用

  • 使用 Git 来获取 Git 的更新:

    $ git clone git://git.kernel.org/pub/scm/git/git.git
  • 可以通过以下命令查看所有的配置以及它们所在的文件:

    $ git config --list --show-origin

用户信息

查看用户名和邮箱地址:

$ git config user.name

$ git config user.email

修改用户名和邮箱地址

$  git config --global user.name  "xxxx"

$  git config --global user.email  "xxxx"

获取帮助

        若你使用 Git 时需要获取帮助,有三种等价的方法可以找到 Git 命令的综合手册

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

本地操作

新建本地仓库

$ git init

添加到暂存区

$ git add [file.name]

将代码提交到仓库

$ git commit -m "[message]"

查看状态

$ git status

查看修改了什么内容

$ git diff [file.name]

重命名

$ git mv file_from file_to

撤消操作

        有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有--amend选项的提交命令来重新提交:

$ git commit --amend

Chapter 2

远程操作

查看远程仓库

        如果想查看你已经配置的远程仓库服务器,可以运行git remote命令。 它会列出你指定的每一个远程服务器的简写。 如果你已经克隆了自己的仓库,那么至少应该能看到 origin ——这是 Git 给你克隆的仓库服务器的默认名字

        如果你的远程仓库不止一个,该命令会将它们全部列出。 例如,与几个协作者合作的,拥有多个远程仓库的仓库看起来像下面这样:

$ cd grit
$ git remote -v
bakkdoor  https://github.com/bakkdoor/grit (fetch)
bakkdoor  https://github.com/bakkdoor/grit (push)
cho45     https://github.com/cho45/grit (fetch)
cho45     https://github.com/cho45/grit (push)
defunkt   https://github.com/defunkt/grit (fetch)
defunkt   https://github.com/defunkt/grit (push)
koke      git://github.com/koke/grit.git (fetch)
koke      git://github.com/koke/grit.git (push)
origin    git@github.com:mojombo/grit.git (fetch)
origin    git@github.com:mojombo/grit.git (push)

添加远程仓库

        我们在之前的章节中已经提到并展示了 git clone 命令是如何自行添加远程仓库的, 不过这里将告诉你如何自己来添加它。 运行 git remote add <shortname> <url>添加一个新的远程 Git 仓库,同时指定一个方便使用的简写:

$ git remote
origin
$ git remote add pb https://github.com/paulboone/ticgit
$ git remote -v
origin  https://github.com/schacon/ticgit (fetch)
origin  https://github.com/schacon/ticgit (push)
pb  https://github.com/paulboone/ticgit (fetch)
pb  https://github.com/paulboone/ticgit (push)

从远程仓库中抓取与拉取

从远程仓库中获得数据,可以执行

$ git fetch <remote>

        这个命令会访问远程仓库,从中拉取所有你还没有的数据。 执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。

        如果你使用 clone 命令克隆了一个仓库,命令会自动将其添加为远程仓库并默认以 “origin” 为简写。 所以,git fetch origin 会抓取克隆(或上一次抓取)后新推送的所有工作。 必须注意 git fetch 命令只会将数据下载到你的本地仓库——它并不会自动合并或修改你当前的工作。 当准备好时你必须手动将其合并入你的工作。

推送到远程仓库

        当你想分享你的项目时,必须将其推送到上游。 这个命令很简单:git push 。 当你想要将 master 分支推送到 origin 服务器时(再次说明,克隆时通常会自动帮你设置好那两个名字), 那么运行这个命令就可以将你所做的备份到服务器:

$ git push origin master

只有当你有所克隆服务器的写入权限,并且之前没有人推送过时,这条命令才能生效。 当你和其他人在同一时间克隆,他们先推送到上游然后你再推送到上游,你的推送就会毫无疑问地被拒绝。 你必须先抓取他们的工作并将其合并进你的工作后才能推送。

查看某个远程仓库

如果想要查看某一个远程仓库的更多信息,可以使用git remote show <remote>命令。

远程仓库的重命名与移除

        你可以运行git remote rename [oldname] [newname]来修改一个远程仓库的简写名。
        你可以运行git remote remove [name]来删除一个远程仓库。

打标签

列出标签

        在 Git 中列出已有的标签非常简单,只需要输入 git tag,(-l -list 是可选的)

删除标签

要删除掉你本地仓库上的标签,可以使用命令git tag -d <tagname>

Git 别名

Git 并不会在你输入部分命令时自动推断出你想要的命令。 如果不想每次都输入完整的 Git 命令,可以通过git config文件来轻松地为每一个命令设置一个别名。