github初探(二)

  晚上闲来无事,继续折腾github,这次主要讲讲如何创建一个本地git仓库并且同步的远程git仓库以及git branch。

  首先创建一个项目,创建项目前,我们要做的有两件事:

  1. 在github上创建一个仓库,可以登录到github.com或者在github for windows上完成,创建后,github会自动完成项目的初始化(git init)
  2. 打开git bash,到用户的项目目录将github上的项目clone到本地
  3. 1 yourname@yourname-PC /path/to
    2 $ git clone git://github.com/youremail/project.git
    3 Cloning into 'project'...
    4 remote: Counting objects: 3, done.
    5 remote: Compressing objects: 100% (2/2), done.
    6 Receiving objects: 100% (3/3), done.
    7 remote: Total 3 (delta 0), reused 0 (delta 0)
    8 yourname@yourname-PC /path/to
    9 $

  这样,一个本地的仓库就创建好了。

  创建仓库以后,我们会对项目进行修改,比如,新建一个文件example.js。我们先手动创建一个新的example.js文件,之后,将修改提交到本地仓库。

  1.  1 yourname@yourname-PC /path/to
     2 $ cd project
     3 yourname@yourname-PC /path/to/project (master)
     4 $ git add example.js
     5 yourname@yourname-PC /path/to/project (master)
     6 $ git commit -a -m 'create example.js'
     7 [master c0cb8b9] create example.js
     8  1 file changed, 0 insertions(+), 0 deletions(-)
     9  create mode 100644 example.js
    10 yourname@yourname-PC /path/to/project (master)

  git add表示将创建的文件信息添加到git的索引库中,也就是说创建一个新的文件以后要git add才能把文件真正的添加到仓库之中(但是并没有提交这一修改)。  

  git commit命令的参数-a表示提交全部修改(all),-m表示添加注释信息(message)

当然,这里只是将修改提交到本地仓库,并没有同步到远程的服务器仓库上,下面将本地的提交过的修改同步到远程仓库上

  1.  1 yourname@yourname-PC /path/to/project (master)
     2 $ git remote add origin git@github.com:youremail/project.git
     3 yourname@yourname-PC /path/to/project (master)
     4 $ git push origin master
     5 Counting objects: 4, done.
     6 Delta compression using up to 4 threads.
     7 Compressing objects: 100% (2/2), done.
     8 Writing objects: 100% (3/3), 277 bytes, done.
     9 Total 3 (delta 0), reused 0 (delta 0)
    10 To  git@github.com:youremail/project.git
    11    fbf0eb6..c0cb8b9  master -> master
    12 yourname@yourname-PC /path/to/project (master)

  $ git remote add是为github上的仓库指定一个别名,上例中就将git@github.com:youremail/project.git指定为一个origin的别名,这样就省去了push和其他操作输入一长串仓库名的麻烦。

  至此,我们就完成了项目的创建->本地修改->本地提交->同步到github的一个过程。

  上面的第11行我们看到master->master的字样,这里的master代表的是github的项目分支,对于项目分支,我们可以这样理解,例如,一个项目有master和secondary两个分支,那么这两个分支就相当这个项目并行的两个版本,在merge(合并)之前,这两个分支是互不影响的,在secondary提交的修改不会影响master分支中的项目,也就是说,如果我们在开发项目的过程中,突然有一个idea想试验一下,但又担心影响到项目的主体,那么我们就可以建立一个分支(branch)来进行修改和提交了,当然,如果这个idea经过了实践的检验,我们也可以合并到master分支中,你的secondary分支的更改会同步到master分支,你的idea就会应用到项目中。

  对于分支,有如下的命令:

  1. 1 yourname@yourname-PC /path/to/project (master)
    2 $ git branch secondary
    3 yourname@yourname-PC /path/to/project (master)
    4 $ git checkout secondary
    5 Switched to branch 'secondary'
    6 yourname@yourname-PC /path/to/project (secondary)
    7 $

  git branch是新建一个本地的分支,git checkout是切换到其他分支,上面我们就由默认的master分支切换到了secondary分支,这时,我们可以将secondary分支上的修改提交到本地并同步到远程git服务器上

  1.  1 yourname@yourname-PC /path/to/project (secondary)
     2 $ git push origin secondary
     3 Counting objects: 3, done.
     4 Delta compression using up to 4 threads.
     5 Compressing objects: 100% (2/2), done.
     6 Writing objects: 100% (2/2), 297 bytes, done.
     7 Total 2 (delta 0), reused 0 (delta 0)
     8 To git@github.com:youremail/project.git
     9    c0cb8b9..27c5c5d  secondary -> secondary
    10 yourname@yourname-PC /path/to/project (secondary)
    11 $

   这里的origin是之前用git remote add添加的仓库别名。

  git push表示将本地的修改同步到远程git服务器上,分支提交的修改也会同步到相应的分支上。

  总结:以上就是我们在进行git分布式仓库项目开发的一些常用操作了,当然在使用git bash的过程,我们或多或少会遇到一些错误,仔细阅读错误信息,会发现不少错误是因为事先预设的origin——仓库别名不能用于某些操作,git bash也会很人性化的提示你使用另一个路径进行提交,可能是git协议和ssh协议应用的场景的不同吧。

posted @ 2013-04-18 22:31  FingerDancing  阅读(1192)  评论(0编辑  收藏  举报