Git 入门

 

Git入门

 

1、下载

下载地址:http://git-scm.com/downloads

从这里可以下载到多种操作系统的支持版本,目前有:Mac、Windows、Linux、Solaris。

 

2、安装

在Linux 上安装:

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

 

$ yum install git

 

 

 

在Windows上安装:

Windows版本是一个exe文件,与其它软件的安装方式是一样的。

 

3、初次使用Git前的配置

 

1)配置用户、邮箱:

$ git config --global user.name "fjn"
$ git config --global user.email fs1194361820.com

 

如果使用了 --global 选项,那么该命令只需要运行一次,因为之后无论你在该系统上做任何事情, Git 都会使用那些信息。 当你想针对特定项目使用不同的用户名称与邮件地址时,可以在那个项目目录下运行没有 --global 选项的命令来配置。

 

2)关联文本编辑器:

$ git config --global core.editor emacs

 

 

下面是windows系统上关联EditPlus的方法:

$ git config --global core.editor “\”D:\Program Files\EditPlus\x86\EditPlus.exe\””

 

 

4、查看help

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

 

也可以直接通过浏览器进行查看,因为Git相关问题就在Git安装目录下:

 

 

5、将现在项目纳入Git管理

 

如果你打算使用 Git 来对现有的项目进行管理,你只需要进入该项目目录并输入:

$ git init

 

         使用这个命令会初始化一个Git仓库,但你项目中的文件并没有加入到仓库中,所以需要做的就是将项目中的文件加入到仓库中,方法如下:

$ git add *.c
$ git add LICENSE
或者可以直接使用:
$ git add *

 

最终使用:
$ git commit -m 'initial project version'

 

         或许你用习惯了SVN等,add命令入SVN中的加入是类似的,但又是不同的,最后需要提交。-m 后是commit comment。

 

6、从远程仓库clone项目

如果你想获得一份已经存在了的 Git 仓库的拷贝,比如说,你想为某个开源项目贡献自己的一份力,这时就要用到 git clone 命令。 如果你对其它的 VCS 系统(比如说Subversion)很熟悉,请留心一下你所使用的命令是"clone"而不是"checkout"。

$ git clone https://github.com/libgit2/libgit2

 

 如果你想在克隆远程仓库的时候,自定义本地仓库的名字,你可以使用如下命令:

$ git clone https://github.com/libgit2/libgit2 mylibgit

 

 

7、Git管理下的文件的状态变化周期

 

请记住,你工作目录下的每一个文件都不外乎这两种状态:已跟踪或未跟踪。 已跟踪的文件是指那些被纳入了版本控制的文件,在上一次快照中有它们的记录,在工作一段时间后,它们的状态可能处于未修改,已修改或已放入暂存区。 工作目录中除已跟踪文件以外的所有其它文件都属于未跟踪文件,它们既不存在于上次快照的记录中,也没有放入暂存区。 初次克隆某个仓库的时候,工作目录中的所有文件都属于已跟踪文件,并处于未修改状态。

编辑过某些文件之后,由于自上次提交后你对它们做了修改,Git 将它们标记为已修改文件。 我们逐步将这些修改过的文件放入暂存区,然后提交所有暂存了的修改,如此反复。所以使用 Git 时文件的生命周期如下:

 

 

使用 git status 可以查看文件的状态,例如:

 

 

8、常用命令

 

1)将文件纳入跟踪: git add filename

2)将文件移除跟踪: git rm filename

3)要在 Git 中对文件改名,可以这么做:git mv,例如:

$ git mv README.md README

 

4)git log 查看提交日志

5)恢复指定文件:git checkout

 

最后将文件提交就行了,使用git commit。

如果想要直接提交文件,而不使用git add,可以:git commit –a –m ‘ commit message’。如果在提交时不指定comment,就会启动你指定的默认的文件编辑器,让你输入comments。

 

题外话:

编辑文件:直接在git bash中使用vim file,例如:

 

 

效果:

 

如果想在windows系统下也能够使用vim工具,可以使用gvim。 

而在windows上可以使用这些命令的缘由是在git/bin目录下,有大量的相关的exe存在:

 

 

9、使用远程仓库

 

在前面第6小节中,已经说明了如何从远程仓库clone一个已存在的项目。这里就再说一些远程操作相关的其他内容:

1)  关联远程仓库

将远程仓库关联,就可以在本地仓库与远程仓库之前进行文件推送与拉取了。

git remote add name url

$ git remote add shortName https://github.com/userid/reposName

 

2)从远程仓库pull、fetch:

使用git pull,会将远程仓库中的指定分支到本地仓库的一个分支中,并将两者合并。

使用git fetch,会从远程仓库中抓取你没有的数据,但不会合并,必须手动合并。

3)push推送到远程仓库

使用git push reposName branchName,将仓库reposName中的branchName推送文件到远程仓库。

例如,要将本地修改好的代码同步到远程仓库中。就需要如下操作:

      a)使用{git add filename}, {git add --update filename}将添加(或者修改) 的文件在本地仓库上建立索引。

      b)使用{git commit -m your_commit_message} 将对代码的修改提交到本地仓库上。

      c)使用{git push remoteReposName branchName} 将本地仓库上的代码推送到远程仓库。

       例如下面就是将本地仓库的代码同步到远程仓库上,只不过这个远程仓库是在GitHub上的.

       

4)远程仓库重命名:

git remote rename oldName newName

其实是远程仓库在Git程序中的一个配置,并不会真正的改变远程仓库的名称,只是为了让你在使用时能够进行区分。

5)远程仓库移除:

git remote rm name

         同样并不会真正的删除远程仓库,而是你在使用git时,不能再对远程仓库进行操作了。

 

6)切换到远程分支:

git checkout -b {localBranchName} {origin}/{remoteBranchName}  

代表切换到远程分支 origin/remoteBranchName, 并在本地创建分支 localBranchName

例如:

         我先clone kafka trunk :

                  git clone https://github.com/apache/kafka.git .

         然后查看当前分支: git status

         最后切到0.10.0分支:git checkout -b 0.10.0 origin/0.10.0

 

 

posted @ 2015-08-18 19:34  乐享程序员  阅读(2387)  评论(5编辑  收藏  举报