[转] 使用Git进行小项目代码管理

http://www.uml.org.cn/pzgl/201206155.asp

之前在公司使用过SVN(无甚感觉)和ClearCase(把人恶心死的东西)两种版本控制工具,都不满意。后来想自己写点东西玩,就发现了这个在国内人气还不怎么高的Git,这个由Linus实现的灵活小巧的VCS。对它的印象差不多可以这么说:“我被萌到了”。

通过采用不同类型的工作流,Git可以适用于各种大小规模的项目。这里介绍一下针对最简单的集中式工作流的配置方式,适合个人和小型团队使用。

注:本文只是一个快速流程,要详细了解Git使用方法的话,强烈推荐阅读《Pro Git》这本书(见本文末尾的参考)。流程中需要一台服务器或VPS(越来越感受到VPS这东西对程序员真有用啊)。

安装Git

Git是跨平台的,在Linux/Mac/Windows上都可以使用,它的分布式特性也使得个人可以在多种平台下方便地进行开发。

Linux

作为桌面系统用的Linux大多是Debian系的,安装很方便,执行下面命令即可:

 
$ sudo apt-get install git-core

Mac OS X

如果安装了Xcode 4的,里面就已经包含了Git。也可以从这里单独安装:http://code.google.com/p/git-osx-installer/downloads/list?can=3

Windows

window平台可以安装msysgit: http://code.google.com/p/msysgit/downloads/list?can=3

喜欢图形界面的可以再加上TortoiseGit:http://code.google.com/p/tortoisegit/downloads/list

初次配置

执行下面两条命令来配置用户信息,他们会用于Git提交时的签名:

 
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected] 

建立本地Git仓库

在你的项目目录下执行:

$ git init

这会在你的项目目录下建立一个.git目录,存储所有Git所需的资源。

然后我们该往项目中添加文件了。不过在这之前,最好先建立一个名为.gitignore的文件,来把一些不需要的文件或文件夹排除掉。比如在Mac下有时会在当前目录下产生一个.DS_Store的文件,这对我们的项目是无用的,我们就可以把它排除掉,而一些文本编辑器会使用以~结尾的备份文件,也要排除掉:

 
.DS_Store
*~

《Pro Git》的2.2节对此规则有更详细的介绍。

然后我们就可以进行文档的添加了,如果是按照上面把忽略规则设定好了的话,可以简单地执行:

$ git add .

这会把忽略规则以外的所有文件都添加进来,也可以这样:

$ git add *.c

来添加部分文件。Git还可能会忽略.gitignore文件,需要手工添加:

$ git add .gitignore

添加好文件后,就进行第一次提交:

$ git commit -m ‘initial project version‘

Git要求所有地提交都要包含说明文字,-m后面地即为说明,这是一种快捷地做法,也可以只用git commit,然后在切换到的界面中编辑说明文字。

建立服务器端

Git是分布式的版本管理软件,不需要服务器端也可以使用,但若要进行多人/多设备协同开发,还是要架设一个服务器端。
首先把刚才建好的本地仓库导出为裸仓库,在项目的上级目录执行:

$ git clone --bare my_project my_project.git

这会新建一个my_project.git文件夹,差不多和项目目录.git文件夹中的内容一样。

使用scp命令(或其他方式)把它上传到你的服务器上:

$ scp -r my_project.git [email protected]:/var/git

服务器上存放的目录可以是任意位置,目录的访问权限其实就和通过Git访问的权限相同(使用ssh协议来访问代码),比如你的项目是私人的,就可以放在你的home目录中。

上传之后本地的my_project.git就可以删掉了。

如果你的服务器端还没有安装git的话,这时是无法通过Git获取代码的,很简单,还是通过

$ sudo apt-get install git-core

命令,在服务器端安装Git。

现在就可以在本地通过Git来获取这个项目了:

$ git clone [email protected]:/var/git/my_project.git

这会在当前目录下建立一个my_project文件夹,里面包含项目源码和git仓库。也可以在上面的命令后再添加一个参数,来制定这个文件夹的位置和名称。

本地仓库和服务器端的关联

我们通过git clone命令抓下来的项目会自动和抓取的服务器端关联好,这样如果你确保前面添加到库中的文件没有遗漏,就可以把它删掉,再新clone下来的项目目录下进行开发(这样最简单最懒)。

也可以手工为原项目建立关联,在最初的项目目录中执行:

$ git remote add origin [email protected]:/var/git/my_project.git

这条命令就是把刚才做好的服务器端仓库添加为远程仓库,名字叫origin。

这时已经可以通过git fetch origin和git push origin master命令来抓取和推送代码了,但这样会比较麻烦(git
fetch不会自动将远端分支合并到当前工作的分支)。

为了之后的使用方便,要设置本地的master分支跟踪远程仓库的master分支:

$ git checkout --track origin/master

$ git checkout --set-upstream master origin/master

这条命令即让本地master分支跟踪远程仓库origin中的master分支。

设置好更总后如果我们需要从远程仓库抓取数据,只需要运行

$ git pull

即可。而本地数据变动后,要提交到远程仓库,则执行:

$ git push

使用git部署网站

以前写好了网页就用ftp工具上传到服务器上,这样子没有版本控制的发布行为可能会导致很多问题。既然现在我们用git来管理项目,那也可以用它来发布网站。

假设刚才我们的my_project是为sojingle.net做的网站,要放在服务器的/var/www/sojingle.net/htdocs/www目录下,则可以在服务器端执行

$ git clone [email protected]:/var/git/my_project.git
/var/www/sojingle.net/htdocs/www

如果网站和git服务器在同一个主机的话,也可以使用本地文件协议来抓取:

$ git clone /var/git/my_project.git /var/www/sojingle.net/htdocs/www

不止是网站,有些软件也是通过这种方式来发布。比如Homebrew和RVM,在更新本地软件时,就是利用git来更新。

新建develop分支

Git除了分布式这一大特性外,还大大强化了分支的使用。我们日常的开发工作一般不在master分支上进行,而是最好建立一个develop分支:

$ git checkout -b develop

开发时,最好基于develop分支再新建一个特性分支,比如我们要为网站添加一个新功能“标签支持”,就为其新建一个分支tag_support,新功能开发完成之后,将其合并到develop分支上:

$ git checkout develop $ git merge tag_support

这就将新功能的代码合并到了开发主分支上,合并过程没有冲突的话,就可以删掉这个分支:

$ git branch -d tag_support

当做好了一组新功能,决定要发版本了,就用可以把develop分支合并到master分支上,git push推送到远程仓库。在服务器端的www目录中,再来执行git
pull,即可把网站更新到最新版本。

推荐及参考

《Pro Git》 http://progit.org/book/zh/

这本书的作者是GitHub的员工,写得非常棒,大量的配图把Git的分支管理讲得非常清楚。而且非纸质书是免费的,已经有了中文版翻译,可以直接在线阅读。

《Git开发管理之道》 http://blog.leezhong.com/translate/2010/10/30/a-successful-git-branch.html

这篇文章主要讲的是软件开发中的分支管理模型,很值得一读

时间: 2024-11-08 18:20:19

[转] 使用Git进行小项目代码管理的相关文章

dictionary小项目代码管理

软件项目开发流程 需求分析 ----> 概要设计  ---> 项目计划 ---->详细设计--->编码测试 -----> 项目测试 ---->调试修改 --->项目发布---->后期维护  >需求分析 : 确定用户的真实需求   >>1. 确定用户的真实需求,项目的基本功能 >>2. 确定项目的整体难度和可行性分析 >>3. 需求分析文档,用户确认  >概要设计:对项目进行初步分析和整体设计 >>1

结对编程总结+git使用与GitHub代码管理——by林玉俊&唐宇涵

一.分析需求 在拿到结对编程项目需求文档后,我和队友第一件事就是讨论需求,分析项目给出的需求以及实现的一些细节.比如,登录界面的设置(注册.重置.登录按钮),注册界面的输入框设置(手机号.验证码.密码.确认密码),题目难度和数量界面的设置等这些逻辑流程问题.并大致对各个类需要实现的功能和接口进行了商定,这样方便了后期的合拢. 下图为当时讨论时的笔记-- 二.编程实现 我负责的是用户手机注册并发送验证码到相应手机号部分和随机算式计算结果部分. 1.接收验证码部分 最初是根据老师给的提示,在阿里云平

项目代码管理工具Git的总结

在项目的开发中,代码的同步管理很重要,团队的几个人可以通过免费的github管理自己的开源项目代码,高效方便.下面说说,开发中经常用到的git指令操作,基于github平台. 0.配置提交者的账户和邮箱名 git config --global user.name "Your Real Name" //账户 git config --global user.email [email protected] //邮箱 1本地创建仓库,然后同步到远程github中. $git init //

如何使用Git上传项目代码到github

github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 1.注册账户以及创建仓库     要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程. 2.安装客户端tortoiseGit     github是服务端,

使用Git上传项目代码到github

github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开.这对于一般人来说公共仓库就已经足够了. 注册账户以及创建仓库 要想使用github第一步当然是注册github账号了.之后就可以创建仓库了(免费用户只能建公共仓库),Create a New Repository,填好名称后Create,之后会出现一些仓库的配置信息,这也是一个git的简单教程.步骤如下: 打开https://github.com 直接在首页上注册 点按钮注册

使用coding进行项目代码管理(全程可视化操作!)

第1步 下载并安装git 下载地址:https://git-scm.com/ 下载及安装过程略. 第2步 注册coding帐号 coding官网:https://coding.net 注册完毕之后,需要到邮箱点击激活邮件中的链接验证邮箱. 具体过程略. 第3步 在coding中创建一个项目 在如下界面创建项目 创建完成之后,会得到一个Git地址,点击右面的图标可以复制地址,如下 项目创建完成之后,可以添加项目成员,被添加的成员都可以访问到你的项目. 第4步 在本地创建仓库 安装完git后,右键菜

Git命令提交项目代码

Git客户端安装 今天就结合`GitHub`,通过`Git`命令,来了解如何实现开源代码库以及版本控制 GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管所以我们需要下载一个Git客户端软件,用来执行各种指令 Git下载地址https://git-scm.com/ 下载完毕后,配置`path`环境变量,`E:\develop\git\Git\bin`(我本机的在E盘下) 在`doc`命令行窗口输入`git`命令,如果出现如下的信息,说明安装成功,

第一个java画板小项目代码,最后面有问题哦,欢迎交流。

一.主窗体代码 package com.mr.draw;//类所在的包名 import javax.swing.JFrame; import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapte

IDEA下通过Git实现代码管理

IDEA下通过Git实现代码管理 1.介绍 1.1 Git概述 Git是类似于SVN等代码管理软件,使用分布式技术实现.Github是互联网代码仓库,每个人可以在上面创建自己的仓库,使用git完成同github仓库的代码同步等管理工作. IntelliJ idea->Git: 使用 Git->GitHub: 同步资源 1.2 Git逻辑架构 git架构上分为远程仓库.本地仓库和工作空间.远程仓库就是位于GitHub上的仓库,本地仓库是为用户本机的仓库目录,工作空间是用户开发所处的目录.三者关系