Git相关知识(2)
上节我们讲了Git的起源、Git的优势以及Git的安装。今天我们继续学习Git的相关知识。
1.Git的配置。
我们在安装Git之后,一般都需要进行Git工具的配置,配置完其工作环境后,我们才能进行下一步的操作。
这里我们以Linux操作系统下的Git为例:
我们通过git -config
命令来配置或者获取相应的工作环境变量。这些环境变量决定了Git在各个环节的具体工作方式和行为。这些变量存放在以下三个不同的地方:
- /etc/gitconfig文件
:系统中对所有用户都普遍存在的配置。若使用` git config --system
命令,读写的就是这个问文件。
- ~/.gitconfig文件
:用户目录下的配置文件只适用于该用户。若使用git config --global
命令,读写的就是这个文件。
- 当前项目的 git
目录中的配置文件(也就是工作目录中的.git/config
文件):这里的配置仅仅针对当前的项目有效。每一个级别的配置都会覆盖上层的相同配置,所以.git/config
里的配置会覆盖/etc/gitconfig
中的同名变量。
配置用户信息
在应用Git之前,首先要配置Git所使用者的信息,即个人的用户名以及其电子邮箱的地址,这两条配置很重要,每次Git进行提交时都会引用这两条信息,说明是谁提交了更新,并会同更新内容一起被永久纳入历史记录。
下面为配置用户信息的命令:
git config --global user.name "zhangsan"
git config --global user.email "zhangsan@example.com"
如果用了 --global
选项,那么更改是用户主目录下的配置文件,以后所有的项目都会默认使用这里配置的用户信息。如果只想在某个特定的项目中使用该用户信息,则只要在当前项目下去掉--global
选项重新配置即可,该配置文件位于当前项目的.git/config
文件中。
查看用户信息
要检查已有的配置信息,可以使用git config --list
命令:
$ git config --list
user.name=zhangsan
user.email=zhangsan@example.com
color.status=auto
color.branch=auto
...
上述的输出结果中,可能会看到重复的变量名,因为Git会从不同的文件中读取同一个配置(例如:/etc/gitconfig与~/.gitconfig
)。这种情况下,Git会使用它找到的每一个变量的最后一个配置。
2.获取命令的帮助
想要了解Git的各种命令,则可以使用一下的命令(三种方式):
$git help
$git --help
$man git-
对于具体的命令用法,我们可以在help
后面加上具体的命令,就可以查看其详细用法,例如我们要学习checkout
命令的用法就可以如下:
$git help checkout
3.Git工作流程
这里我们从配置远程仓库开始,学习Git的工作流程。
- 配置远程仓库Repository
- 克隆远程仓库中的资源作为本地工作目录
- 在本地工作目录中克隆的资源上进行添加或者修改文件
- 如果其他人修改了文件并且已经提交到远程仓库,你可以更新资源将远程仓库中最新的资源拉下来。
- 在提交前查看修改
- 提交修改
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
1.配置远程仓库Repository
远程仓库(Repository)的目标是管理一个工程,用以多人共同开发一个项目。常见的著名的远程仓库第三方托管品台国内为 http://git.oschina.net,国外为 http://github.com/
在真正的工作中,大多数的项目都是在公司自己创建的服务器中。这里不再多说。
2.克隆仓库
Git克隆的是该Git仓库服务器上所选项目的所有数据,默认配置下远程Git仓库中的每一个文件的每一个版本都将被拉取下来。如果服务器的磁盘坏掉了,我们可以使用任何一个克隆下来的项目来重建服务器上的仓库。
克隆仓库的命令格式为git clone [url]
其中url
为要克隆的仓库地址。
例如:
$ git clone http://git.oschina.net/example/git-example.git
执行上面的命令就会在本机当前目录下创建一个名为git-example.git
的目录,并在该目录下初始化一个.git
文件夹。从远程仓库拉取下所有数据放入.git
文件夹,然后从中读取最新的版本的文件拷贝。
3.修改文件
我们在项目中对所需要修改的文件进行修改这些修改只对本机有效。之后我们可以使用git add xxx
将修改的xxx文件添加到暂存区。
4.提交修改
使用git add
命令是将修改的文件写入暂存区,而提交修改需要执行git commit
命令。
- 参考:Git的工作流程