眼观千遍 → 耳听万遍 → 不如手动一遍√

  :: :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

创建repository


 

可以在Github上无限制使用public repository进行源代码管理,创建一个repository很简单,不多说了。

 

获取代码到本地


 

首先要安装Git,然后使用命令把代码从Github上拷贝到本地:

git clone https://github.com/<username>/<repository_name>

 

如果是第一次使用,自己的repository还是空的,同样可以使用remote进行链接

git remote add origin https://github.com/username/repository_name.git

 

提交更新到服务器


 

如果我们要新增或者更新一个文件,比如test.html。我们要先确保这个test.html已经存在,然后用git add 进行添加标记,表示这个文件已经改动或者这个文件是新增文件。

git add test.html

 

git commit -m "代码提交信息"

如果没有commit,那么添加的文件只是放在一个暂存区。 commit后改动才算真正写到了本地,但是改动还没有上传的服务器上去。如果添加多个文件,可以用

git add *

因此,即使是commit了,新增的文件也还没有上传到Github上去。需要用push把改动上传到Github上去。 会提示你输入用户和密码

git push origin master

这个"master",是指分支的名字。默认情况下就只有"master"这个主分支。 "orgin"是在我们从Github上clone代码到本地的时候,默认的源的名字。可以理解为"orgin"就是我们当前正在工作的源代码。 上面的意思就是,把我们当前的代码("orgin")的改动推送到服务器上的"master"分支。

 

删除一个文件和添加一个文件的步骤类似。首先使用git rm删除一个文件,并且commit。注意,直接在目录下把文件删掉是没有用的,必须用git rm删除文件。

git rm test.html

git commit -m "代码提交信息"

然后在把改动push到服务端"git push origin master"。

 

服务器获取更新


git status 是一个很有用的命令,用来查看本地repository的状态,它会显示文件的新增/修改/删除的状态。

如果服务端有更新,git status也会有相应的提示。

D:\Dev\Github\bid>git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)

nothing to commit, working directory clean

上面的显示的意思就是,有一个更新还没有反应到我本地来,可能是别人往server上checkin了一点东西。 使用git pull命令拿这些更新到本地来。

D:\Dev\Github\bid>git pull
Updating abf79f6..db7b6e3
Fast-forward
routes.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

如果服务端和本地文件都做了改动,使用git pull时就会提示冲突:

D:\Dev\Github\bid>git pull
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0)
Unpacking objects: 100% (3/3), done.
From https://github.com/*****/***
db7b6e3..211ff7f master -> origin/master
Updating db7b6e3..211ff7f
error: Your local changes to the following files would be overwritten by merge:
routes.js
Please, commit your changes or stash them before you can merge.
Aborting

这时候推荐手动检查一下文件的版本,到底需要哪个。有一个git mergetool可以帮助merge code。

 

使用git checkout可以丢弃掉本地的改动,然后使用git pull去拿server上的最新更新。

比如,我想丢弃一个文件的所有改动:

git checkout routes.js

然后再使用git pull,就可以拿到server上的版本的代码了。

 

 

posted on 2014-03-26 13:55  无恙  阅读(9117)  评论(0编辑  收藏  举报