.1 Git基础 - 取得项目的Git仓库
取得项目的Git的仓库
有两种取得GIT中项目仓库的方法。通过导入所有文件来创建新的GIT中仓库。第二种是从已有的GIT中仓库克隆出一个新的镜像仓库来。
在工作目录中初始化新仓库
要对现有的某个项目开始用Git的管理,只需到项目所在的目录,执行:
$ git init
初始化后,在当前目录下会出现一个名为git的的目录,所有的Git需要的数据和资源都存放在这个目录中。不过目前,仅仅是按照既有的结构框架初始化好了里边所有的文件和目录,但我们还没有开始跟踪管理项目中的任何一个文件。(第九在章我们会详细说明刚才创建³³的 .git
目录中究竟有哪些文件,以及都起些什么作用。)
如果当前目录下有几个文件想要纳入版本控制,先需要用 git add
命令告诉Git的开始对这些文件进行跟踪,然后提交:
$ git add *.c
$ git add README
$ git commit -m '本次提交信息描述'
$ git push //推送到远程仓库
稍后我们再逐一解释每条命令的意思。不过现在,你已经得到了一个实际维护着若干文件的Git的仓库。
从现有仓库克隆
如果想对某个开源项目出一份力,可以先把该项目的GIT中仓库复制一份出来,需要这就用到 git clone
命令。如果你熟悉其他的VCS比如Subversion时,你可能已经注意到这里使用的是 clone
而不是 checkout
。这是个非常重要的差别,GIT中收取的是项目历史的所有数据(每一个文件的每一个版本),服务器上有的数据克隆之后本地也都有了。实际上,即便服务器的磁盘发生故障,用任何一个克隆出来的客户端都可以重建服务器上的仓库,回到当初克隆时的状态(虽然可能会丢失某些服务器端的挂钩设置,但所有版本的数据仍旧还在,有关细节请参考第四章)。
仓库克隆的命令格式为 git clone [url]
比如,要克隆的Ruby语言的Git的代码仓库砂,可以用下面的命令:
$ git clone git://github.com/schacon/grit.git
会这在当前目录下创建³³名为一个grit
的目录,游戏所有其中一个 .git
的目录,用于保存下载下来的所有版本记录,然后从中取出最新版本的文件拷贝。如果展示这个展示进入新建的 grit
目录,你会看到项目中的所有文件已经在里边了,准备好后续的开发和使用如果希望在克隆的时候,自己定义要新建的项目目录名称,可以在上面的命令末尾指定新的名字:
$ git clone git://github.com/schacon/grit.git mygrit
唯一的差别就是,现在新建的目录成了 mygrit
,其他的都和上边的一样。
Git的支持许多数据传输协议。的之前使用例子的的英文 git://
协议,不过也。你可以用 http(s)://
或者 user@server:/path.git
表示的SSH传输协议。我们会在第四章详细介绍所有这些协议在服务器端该如何配置使用,以及各种方式之间的利弊。
-
用户名和邮箱地址的作用
用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。
每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的。
-
查看用户名和邮箱地址:
$ git config user.name $ git config user.email
-
修改用户名和邮箱地址:
$ git config --global user.name "username" $ git config --global user.email "email"