你应该知道的基础 Git 命令
这个快速指南将向你展示所有的基础 Git 命令以及用法。你可以下载这些命令作为快速参考。
Git
188.166.229.83
git到底是什么啊？不是一个网站吗？我只知道可以从那上面下个人开发的软件。
青莲居士 [Chrome 51.0|GNU/Linux]
2016-07-08T15:47:28.000
220.163.54.178
git是代码版本控制软件，支持HTTP协议。你的意思大概是通过HTTP克隆clone（下载）一份代码副本
来自云南昆明的 Firefox 48.0|Windows 8.1 用户
2016-07-08T18:56:41.000
117.22.176.200
小伙子，还需努力啊，多学习吧
Shadow-華 [Chrome 51.0|Windows 10]
2016-07-08T23:15:00.000
119.132.72.24
你说得是 Github，不是git
来自广东珠海的 Vivaldi 1.2|GNU/Linux 用户
2016-07-09T20:16:40.000
111.202.28.98
git是一个版本管理工具，github是全球最大的同性交友平台。 <br />
是这样吗？
青莲居士 [Firefox 47.0|Ubuntu]
2016-07-12T15:33:15.000
153.99.106.103
git remote add &lt;github.com?这里应该写什么&gt;
来自江苏的 Firefox 47.0|Windows 7 用户
2016-07-18T21:28:04.000
这个快速指南将向你展示所有的基础 Git 命令以及用法。你可以下载这些命令作为快速参考。
![](/data/attachment/album/201607/07/235601nvdjd85mn7h22hd4.jpg)


*简介：这个快速指南将向你展示所有的基础 Git 命令以及用法。你可以下载这些命令作为快速参考。*


我们在早先一篇文章中已经快速介绍过 [Vi 速查表](http://itsfoss.com/download-vi-cheat-sheet/)了。在这篇文章里，我们将会介绍开始使用 Git 时所需要的基础命令。


### Git


[Git](https://git-scm.com/) 是一个分布式版本控制系统，它被用在大量开源项目中。它是在 2005 年由 Linux 创始人 [Linus Torvalds](https://en.wikipedia.org/wiki/Linus_Torvalds) 写就的。这个程序允许非线性的项目开发，并且能够通过存储在本地服务器高效处理大量数据。在这个教程里，我们将要和 Git 愉快玩耍并学习如何开始使用它。


我在这个教程里使用 Ubuntu，但你可以使用你选择的任何发行版。除了安装以外，剩下的所有命令在任何 Linux 发行版上都是一样的。


### 安装 Git


要安装 git 执行以下命令：



```
sudo apt-get install git-core

```

在它完成下载之后，你就安装好了 Git 并且可以使用了。


### 设置 Git


在 Git 安装之后，不论是从 apt-get 还是从源码安装，你需要将你的用户名和邮箱地址复制到 gitconfig 文件。你可以访问 ~/.gitconfig 这个文件。


全新安装 Git 之后打开它会是完全空白的：



```
sudo vim ~/.gitconfig

```

你也可以使用以下命令添加所需的信息。将‘user’替换成你的用户名，‘user@example.com’替换成你的邮箱。



```
git config --global user.name "User"
git config --global user.email user@example.com

```

然后你就完成设置了。现在让我们开始 Git。


### 仓库


创建一个新目录，打开它并运行以下命令：



```
git init

```

![](/data/attachment/album/201607/07/235652wwwpeez2ddsrje9y.png)


这个命令会创建一个新的 Git <ruby> 仓库 <rp>  （ </rp> <rt>  repository </rt> <rp>  ） </rp></ruby>。你的本地仓库由三个 Git 维护的“树”组成。


第一个是你的<ruby> 工作目录 <rp>  （ </rp> <rt>  Working Directory </rt> <rp>  ） </rp></ruby>，保存实际的文件。第二个是索引，实际上扮演的是<ruby> 暂存区 <rp>  （ </rp> <rt>  staging area </rt> <rp>  ） </rp></ruby>，最后一个是 HEAD，它指向你最后一个 commit 提交。使用 git clone /path/to/repository 签出你的仓库（从你刚创建的仓库或服务器上已存在的仓库）。


### 添加文件并提交


你可以用以下命令添加改动：



```
git add <filename>

```

这会添加一个新文件到暂存区以提交。如果你想添加每个新文件，输入：



```
git add --all

```

添加文件之后可以使用以下命令检查状态：



```
git status

```

![](/data/attachment/album/201607/07/235750nd1oc41c1x35qt4v.png)


正如你看到的，那里已经有一些变化但还没有提交。现在你需要提交这些变化，使用：



```
git commit -m "提交信息"

```

![](/data/attachment/album/201607/07/235837gnj2jlocjilfjuqq.png)


你也可以这么做（首选）：



```
git commit -a

```

然后写下你的提交信息。现在你的文件提交到了 HEAD，但还不在你的远程仓库中。


### 推送你的改动


你的改动在你本地工作副本的 HEAD 中。如果你还没有从一个已存在的仓库克隆，或想将你的仓库连接到远程服务器，你需要先添加它：



```
git remote add origin <服务器地址>

```

现在你可以将改动推送到指定的远程服务器。要将改动发送到远程服务器，运行：



```
git push -u origin master

```

### 分支


分支用于开发特性，分支之间是互相独立的。主分支 master 是你创建一个仓库时的“默认”分支。使用其它分支用于开发，在完成时将它合并回主分支。


创建一个名为“mybranch”的分支并切换到它之上：



```
git checkout -b mybranch

```

![](/data/attachment/album/201607/07/235951pxxg29844wxclg2c.jpg)


你可以使用这个命令切换回主分支：



```
git checkout master

```

如果你想删除这个分支，执行：



```
git branch -d mybranch

```

![](/data/attachment/album/201607/09/171352cycc99ydy5yyzo7y.jpg)


除非你将分支推送到远程服务器上，否则该分支对其他人是不可用的，所以只需把它推送上去：



```
git push origin <分支名>

```

### 更新和合并


要将你本地仓库更新到最新的提交上，运行：



```
git pull

```

在你的工作目录获取并合并远程变动。要合并其它分支到你的活动分支（如 master），使用：



```
git merge <分支>

```

在这两种情况下，git 会尝试<ruby> 自动合并 <rp>  （ </rp> <rt>  auto-merge </rt> <rp>  ） </rp></ruby>改动。不幸的是，这不总是可能的，可能会导致冲突。你需要通过编辑 git 所显示的文件，手动合并那些冲突。改动之后，你需要用以下命令将它们标记为已合并：



```
git add <文件名>

```

在合并改动之前，你也可以使用以下命令预览：



```
git diff <源分支> <目标分支>

```

### Git 日志


你可以这么查看仓库历史：



```
git log

```

要以每个提交一行的样式查看日志，你可以用：



```
git log --pretty=oneline

```

或者也许你想要看一个所有分支的 ASCII 艺术树，带有标签和分支名：



```
git log --graph --oneline --decorate --all

```

如果你只想看哪些文件改动过：



```
git log --name-status

```

在这整个过程中如果你需要任何帮助，你可以用 git --help。


Git 棒不棒？！祝贺你你已经会 Git 基础了。如果你愿意的话，你可以从下面这个链接下载这些基础 Git 命令作为快速参考：


* [下载 Git 速查表](https://drive.google.com/open?id=0By49_3Av9sT1bXpINjhvU29VNUU)




---


via: <http://itsfoss.com/basic-git-commands-cheat-sheet/>


作者：[Rakhi Sharma](http://itsfoss.com/author/rakhi/) 译者：[alim0x](https://github.com/alim0x) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](https://linux.cn/) 荣誉推出

