Git 提交项目

与远程仓库同步,修改,载入(stage)和提交项目

下面我们做这个例子
* 修改文件
* 提交变更
请克隆这个项目:
git clone git://github.com/schacon/simplegit
下载完后 进入项目目录
cd simplegit
修改README文件,修改文件很简单,但这是linux,不是windows,文件也不是txt,因为linux没有文件类型,所以我们用vi。
先用cat看一下 cat readme
vi readme ,linux命令不会就自己学下了
在把你自己的大名也加到里面去吧,有成就感么 哈哈
然后就提交吧
git commit -a
然后出来个很花哨的界面,让你输入注释,就是svn一样,让你说说你修改了啥



你可以输入一些提交的信息,譬如"added myself to the README as an author"然后退出。
vi操作提示:
按下I,o,a进入编辑模式,编辑完毕按Esc,输入:wq保存退出。
然后会看到这样的提示


显示我们刚刚输入的提交信息,并且有一组关于这次提交项目中文件变更的统计数字。同时还给我们一个提交的校验和,'f854234',这个校验和可以用来日后确切的查看这次提交的细节。
这就是简单用例。修改文件,'git commit -a'

协作开发示例
现在,我们来介绍一个复杂点的实例,这次我们使用远程仓库,将项目上传上去,从而跟其他的开发者一起协同工作。同时,我们会介绍staging area。
如果你会从远程仓库中克隆项目,那么与远程仓库项目同步也是相当简单的--只需要执行'git pull'.如果是远程仓库项目没有变化,也就是说其他的开发者没有对项目进行变更,会显示这样的信息:
Already up-to-date.
相反,执行这条命令之后会将你上次同步之后远程仓库中的变更同步到本地项目中,并且git会合并这些新的变更:
修改README文件和lib/simplegit.rb文件(不要执行git commit -a)。现在你可以使用'git status'命令来查看工作目录发生了什么变更:


我们看到,有两个文件是在"changed but not updated"段落中出现 ,这意味着这两个文件还没有载入(unstaged). 如果现在我们提交,什么也不会发生。也就是说文件必须先载入(stage),然后才能提交。


现在'lib/simplegit.rb'文件还是未载入(unstaged), 但是README文件现在已经到了'changes to be committed'段落中-它几经载入(stage)了。现在如果我们运行提交命令(不要-a,这个会自动stage所有的东西),只有这个文件会被提交-而simplegit.rb依然是unstaged。这时,我们使用-m选项来执行'git commit',这样后面跟上字符串表示这次提交的信息。


如果现在再执行'git status',我们会看到stage之后的文件现在已经提交了,只剩下了unstaged的'simplegit.rb'文件。
现在我们可以提交这个文件:


现在我们已经将两次提交的变更都搞定了,而且加了提交信息,可以让我们的合作伙伴很容易理解我们做的变更。经过最后一次提交,我们看到'git status'执行之后显示我们的工作目录clean了(同时提示我们现在的分枝上有两个提交还没有上传)
所以,现在我们将这些变更上传到服务器端与我们的合作伙伴分享,前提是我们有上传的权限,(如果没有上传的权限,我们可以在网络上创建一个自己的git仓库,将其上传),然后让朋友下载。
运行'git push'会将我们的变更上传到服务器。

猜你喜欢

转载自jiaozhiguang-126-com.iteye.com/blog/1669536
今日推荐