2015年06月3日

Zend Studio集成Git使用

Filed under: 版本控制 — cmpan @ 2015-06-03 23:45:30

Git确实比svn好用,就是稍微不容易理解。
git分本地库和远程库,修改的工作代码要先提交到本地库,然后再提交到远程库。这个是刚接触的人比较困惑的地方,还有分支来困扰,所以了解了解工作代码、本地库和远程库后,创建、切换、合并、删除分支也是重点要了解的。

1、服务器端建版本库

1
2
3
4
5
6
groupadd git
adduser -g git git
mkdir -p /home/git/mydemo
cd /home/git/mydemo
git init --bare --shared # 在mydemo文件夹创建裸仓库
chown git:git -R /home/git/mydemo  #

2、将代码push到服务器版本库
服务器端建裸库后,本地push上服务器后,服务器端将自动创建master库。创建master库前,本地不可pull下了。

2.1、初始化好本地版本仓库
在Zend Studio左侧项目文件夹上右击选择

1
2
3
team => share project => Git =>
勾选 "Use or create repository in parent folder of project" =>
在自动切换出来的窗口点击 “Create Repository”

就在项目文件夹下创建 .git 文件夹初始化好本地版本仓库了。

2.2、把改动的文件提交到本地版本仓库

1
Team => Commit

2.3、添加终端版本仓库
切换到Git视图,找到项目的Remotes,右击选择“Create Remote…”,点OK后,点击“Change…”设置远程版本库,把“ssh://mygit@yulans.cn/gitdata/mydemo”贴到URI输入框,一切都懂了。我们这是用ssh账号来搞的。

2.4、将本地版本仓库提交到远程仓库

1
Team => Push to Upstream

把已提交到本地版本库的代码提交到终端库,修改但未提交到本地版本库的不会提交到终端库。

3、从远程库拉取代码下来

1
Team => Pull from Upstream

4、Zend Studio 导出git项目
和svn一样,以后有时间再补写。

5、同步远程代码
远程代码有更新了,本地的代码需要跟着变。
5.1、检查终端是否有更新
执行

1
Team => Pull from Upstream

如果远程有更新,项目名后面将显示箭头和数字,向下的箭头和后面的数字说明终端有n个修改并且已经下载下来,这时我们需要执行Team=>Merge…合并远程更新到本地版本库(这一步需要手动操作,工具不自动帮我们合并,这一步很容易把刚入门的人弄蒙)。如果有向上的箭头和数字,说明本地有n个修改需要上传到远程终端。

5.2、合并远程更新到本地文件
执行

1
Team=>Merge...

当前本地版本前面有打钩,选择Remote Tracking下的分支合,点击Merge后开始合并。

6、创建和使用分支

6.1、创建分支
命令行 git branch 分支名
IDE:

1
Team => Switch To => New Branch...  输入分支名并确定。

6.2、切换分支
命令行 git checkout 分支名
IED:

1
Team => Switch To 选择分支名

需要注意的是,切换到分支后,之前分支拥有的文件,切换后的分支没有,则文件将临时被删除,切换回之前的版本后,文件又自动冒出来。新手碰到这一步很容易被吓晕,“我的文件啥都没了。。。。”。

7、把分支合并到主线
分支fetch并push后,切换到主线,fetch后,执行Team=>Merge…,选择Local要合并的分支线,点击Merge合并,
然后push主线到远程即可。

8、创建tag

9、命令行分支管理
Git鼓励大量使用分支:

1
2
3
4
5
6
7
查看分支:git branch
创建分支:git branch
切换分支:git checkout
创建+切换分支:git checkout -b
合并某分支到当前分支:git merge
删除分支:git branch -d
<strong>解惑</strong>

附:
———————————

1)fetch与pull的区别
git fetch 是从远程获取最新版本到本地,不会自动merge工作文件
git pull 是从远程获取最新版本并merge到本地工作文件

2)开发团队OS不同引起文件自动被修改问题的解决

1
2
3
4
5
6
# 1、Windows下的IDE设置新建文件的换行符使用Unix格式的换行符
# 2、全局设置git不自动转换换行
git config --global core.autocrlf false
# 如果不方便全局设置可进入项目文件夹执行对单个项目的设置 git config core.autocrlf false
# 3、设置git忽略文件访问模式的修改,mac或*nux下chmod修改文件模式的时候默认git会当做文件已被修改
git config --global core.filemode false

Views – 3497

分享到:
Copyright © 2009 流水孟春 版权所有
Web技术,LAMP,Nginx,Web2.0,前端技术
Powered by WordPress & UI Designed by 流水孟春