2012-03-31 82 views
0

我有一个客户端网站,它有一个单一的代码库。在我最近的变化中,我把网站的实况复制到了一个新的GIT仓库,并开始对它进行新的更新。现在还有另一位开发人员对现场网站进行了更改,因此我想要做一些事情,让我能像对待其他分支一样对待他的更改,并顺利合并差异。什么是适当的方法来做到这一点?我曾考虑将代码添加到新分支,并创建diff补丁并将其应用于GIT代码。合并非git代码与基于git的代码(初始代码库相同)

回答

0

制作另一个分支,然后提交他的更改将是一个很好的方法来做到这一点。

一个更好的方法是让其他开发人员在他自己的git分支上,然后在彼此之间进行整合。

+0

我计划稍后再设置。我们当前的代码库已经完成了我们将FTP传输到服务器的更改。当我开始GIT repo时,他通过FTP推动了一些更改,因为我开始搞乱了我的初始代码克隆,所以我必须添加这些更改并让他安装。 – 2012-03-31 19:36:22

0

分支是Git中的常用方法。这意味着:从当前代码分支,在那里进行合并,并在成功时将其合并回主分支。

分支不是偏离普通的东西(比如在SVN中),但它是Git中正常工作流程的一部分。不需要让开发人员的编辑干扰您的工作:只需合并,然后合并回主分支。

2

我假设你不喜欢的东西如下:

git init project 
cd project 
<copy existing code to this directory> 
git add -Af . 
git commit -m "Import code" 
<edited some files> 
git commit -a -m "Made changes" 

最好的方法是创建一个分支掉原装进口的承诺,并在该分支的活动站点的另一个快照。假设原始导入提交的提交ID为f00ba4(您可以使用git log来查找实际的SHA1 ID)。要合并其他开发人员的变化,你可以做到以下几点:

  1. 创建一个新的分支称为live指着犯f00ba4,然后检查一下:

    git checkout -b live f00ba4 
    
  2. 确保没有任何未经跟踪文件躺在身边:从活动现场

    git clean -dxf 
    
  3. 复制最新的代码

  4. 提交的最新代码:

    git add -Af . 
    git commit -m "take another snapshot of the live site" 
    
  5. 切换回你的分支:

    git checkout master 
    
  6. 纳入你的改动其他开发人员的变化:

    git merge live 
    

每次都是另一个

  1. 更新live分支的最新代码:

    git checkout live 
    git clean -dxf 
    <copy the files from the live site> 
    git add -Af . 
    git commit -m "another snapshot of the live site" 
    
  2. 合并的变化livemaster

    开发人员修改在现场站点的文件,您可以按以下步骤更新你的资料库
    git checkout master 
    git merge live 
    

Whe n您准备好部署您的更改:

  1. 确保live分支是最新的:

    git checkout live 
    git clean -dxf 
    <copy the files from the live site> 
    git add -Af . 
    git commit -m "another snapshot of the live site" 
    
  2. 合并更改为live

    git merge master 
    
  3. 部署文件到活网站