2012-03-31 100 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. 部署文件到活網站