Git安装、全局配置和常用命令(全)

1、安装 Git

在你开始使用 Git 前,需要将它安装在你的计算机上。 即便已经安装,最好将它升级到最新的版本。 你可以通过软件包或者其它安装程序来安装,或者下载源码编译安装。

1.1 在 Linux 上安装

如果你想在 Linux 上用二进制安装程序来安装 Git,可以使用发行版包含的基础软件包管理工具来安装。 如果以 Fedora 上为例,你可以使用 yum:

$ sudo yum install git

如果你在基于 Debian 的发行版上,请尝试用 apt-get:

$ sudo apt-get install git

要了解更多选择,Git 官方网站上有在各种 Unix 风格的系统上安装步骤,网址为 http://git-scm.com/download/linux。

1.2 在 Mac 上安装

在 Mac 上安装 Git 有多种方式。 最简单的方法是安装 Xcode Command Line Tools。 Mavericks (10.9) 或更高版本的系统中,在 Terminal 里尝试首次运行 git 命令即可。 如果没有安装过命令行开发者工具,将会提示你安装。

如果你想安装更新的版本,可以使用二进制安装程序。 官方维护的 OSX Git 安装程序可以在 Git 官方网站下载,网址为 http://git-scm.com/download/mac。

Figure 7. Git OS X 安装程序.

你也可以将它作为 GitHub for Mac 的一部分来安装。 它们的图形化 Git 工具有一个安装命令行工具的选项。 你可以从 GitHub for Mac 网站下载该工具,网址为 http://mac.github.com。

1.3、在 Windows 上安装

在 Windows 上安装 Git 也有几种安装方法。 官方版本可以在 Git 官方网站下载。 打开 http://git-scm.com/download/win ,下载会自动开始。 要注意这是一个名为 Git for Windows的项目(也叫做 msysGit),和 Git 是分别独立的项目;更多信息请访问 http://msysgit.github.io/ 。

另一个简单的方法是安装 GitHub for Windows。 该安装程序包含图形化和命令行版本的 Git。 它也能支持 Powershell,提供了稳定的凭证缓存和健全的 CRLF 设置。 稍后我们会对这方面有更多了解,现在只要一句话就够了,这些都是你所需要的。 你可以在 GitHub for Windows 网站下载,网址为 http://windows.github.com。

1.4、从源代码安装

有人觉得从源码安装 Git 更实用,因为你能得到最新的版本。 二进制安装程序倾向于有一些滞后,当然近几年 Git 已经成熟,这个差异不再显著。

如果你想从源码安装 Git,需要安装 Git 依赖的库:curl、zlib、openssl、expat,还有libiconv。 如果你的系统上有 yum (如 Fedora)或者 apt-get(如基于 Debian 的系统),可以使用以下命令之一来安装最小化的依赖包来编译和安装 Git 的二进制版:

$ sudo yum install curl-devel expat-devel gettext-devel openssl-devel zlib-

$ sudo apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

为了能够添加更多格式的文档(如 doc, html, info),你需要安装以下的依赖包:

$ sudo yum install asciidoc xmlto docbook2x
$ sudo apt-get install asciidoc xmlto docbook2x

当你安装好所有的必要依赖,你可以继续从几个地方来取得最新发布版本的 tar 包。 你可以从 Kernel.org 网站获取,网址为

https://www.kernel.org/pub/software/scm/git

或从 GitHub 网站上的镜像来获得,网址为

https://github.com/git/git/releases

通常在 GitHub 上的是最新版本,但 kernel.org 上包含有文件下载签名,如果你想验证下载正确性的话会用到。

接着,编译并安装:

$ tar -zxf git-2.0.0.tar.gz

$ cd git-2.0.0

$ make

$ ./configure --prefix=/usr

$ make all doc info

$ sudo make install install-doc install-html install-info

完成后,你可以使用 Git 来获取 Git 的升级:

$ git clone git://git.kernel.org/pub/scm/git/git.git

2、全局设置用户名邮箱配置

2.1 查看git配置信息

git config --list

2.2 查看git用户名

git config user.name

2.3 查看邮箱配置

git config user.email

2.4 全局配置用户名

git config --global user.name “nameVal”

2.5 全局配置邮箱

git config --global user.email “[email protected]

3、git常用命令

3.1 初始化仓库

git init

3.2 查看仓库的状态信息

git status

3.3 将文件加入暂存区

  1. 将单个文件加入暂存区

    git add 文件名

  2. 将所有文件加入暂存区

    git add .

3.4 提交暂存区到本地仓库

git commit -m <message>

3.5 查看日志

git log commit。

可以看到什么时间什么人提交了一个什么commit

3.6 回退文件

已经add了一个文件,但不应该提交此文件,在commit之前我们可以输入以下命令:

git reset 文件名

3.7 恢复之前文件提交状态

加入你第4次提交了项目文件,但是发现第四次提交项目文件有问题,想回退到第三次项目提交的文件,那该怎么办呢?找到第三次commit的ID,然后通过git reset即可。命令如下:

git reset

此时使用git log会发现第四次提交的记录消失了。

3.8 查看所有的操作记录

git reflog

可以查到使用git log查不到的提交记录。(可以查看到上一个指令介绍中的第四次提交记录)
git log 与 git reflog显示的commitID的哈希值不一样,但其实是一样的。因为哈希值的前7位就可以锁定哈希值了,所以你输全称和前7位是一样的。

3.9 git reset模式

  • –hard:不保存所有变更,所有一切都会反原之前commit ID对应的状态(常用)
  • –soft:保留变更变更内容处于Staged
  • –mixed:保留变更且变更内容处于Modeified,这个是get reset后面的默认

3.10 分支

通常我们家master做为主分支,

  1. 创建新的分支:

    git checkout -b <name> <template>

    如果template不是本地的,是远程的,则需要加个origin。

    git checkout -b <name> origin <template>

    第一个参数name是建立的分支名,第二个参数指以哪个分支或者commit为模版,第二个参数不填,以当前分支为模版。加入我们以当前分支为模版,新切一个分支,新分支的commit记录会继承模版分支,但切完分支之后,新分支的改动和模版分支不再有关系。

  2. 切换分支:

    git checkout 分支名

  3. 查看所有的分支(本地):

    git branch

    其中高亮的条目代表我们当前所处的分支。

3.11 合并

合并其它分支的变更,并不是分支的内容哦。

git merge

3.12 远程操作

  1. 下载远程仓库至本地

    使用远程仓库作为中央仓库来管理所有的分支。
    在远程仓库github或gitee中创建一个仓库,在创建仓库完成后复制下载链接,分别将远程仓库下载到本地,执行命令:

    git clone

    会发现电脑出现了这个仓库的文件夹。

  2. 本地分支的commit推送至远程仓库

    使用git push将本地创建的分支br-a推送至远端会发现无法推送,提示我们当前分支br-a没有上流分支,它是指bc-a仅存在你的本地,而远端没有这个分支。为了推送这个分支,并将远端分支设置为上流分支,可以使用如下命令:

    get push --set-upstream origin br-a

    其中–setup-stream是指设置上流分支,origin是指远端仓库。所以上述命令的意思是指将远程仓库的br-a分支作为本地br-a分支的上流分支。我们到github或gitee上可以看到有两个分支:master、br-a。

    将本地推送变更推送至远端:

    git push

    简单总结下,如果分支是本地新切的,没有设置上流分支,则需要使用get push --set-upstream先设置上流分支,之后的commit都可以通过git push进行提交。

  3. 拉取远程仓库信息

    • 把远程仓库的分支信息拉取到本地仓库(只是获知远程仓库信息)

      git fetch

    • 查看本地仓库(只展示本地的fetch,看不到远程仓库分支信息)

      git brach

    • 切换新分支(本地不存在的新分支)

      git checkout br-a(远程仓库分支名)

      可以顺利的切换出br-a。此时的br-a也是本地的,只不过模版分支来自远程仓库。

      注意:如果不先git fetch的话,git checkout br-a 这条指令是没用的。

      此时本地切的分支本身就来自远程仓库,所以不需要设置远程的上流分支。

    • 为什么需要fetch机制呢?

      每次check out的时候,直接去远程仓库检测,是否有该分支不行吗?为什么要设置fetch机制呢?在我们使用git的绝大数场景下,git都是在本地切换切去,只有在团队协作时才需要和远程仓库交互,所以每次check out都检测远程仓库,这无疑是一件很浪费网络资源的事。

3.13 git pull

git pull是将远程的上流分支的内容与本地分支merage,所以git pull等效于先fetch再自动merge,是一种便捷的方式。

3.14 变基(Rebase)

rebase重新排列base,base指的是commit。对于这块,网上很多文章,可以去网上找下,很容易理解的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章