使用git合并尚未受版本控制的网站

时间:2016-01-11 08:09:17

标签: git diff

我们有一个网站在工作,我们保留两份副本 - 一个是实时网站,或主副本,另一个是测试/暂存网站,在复制之前进行大的更改并进行测试 - 此时手动 - 到现场并发布。

我们刚刚在网站上完成了结帐检修,导致创建或修改了大约40个文件。

我的问题是:

我们可以创建两个git分支,每个站点一个,然后使用git生成差异列表并将测试更改合并到实际站点中,即使该站点当前不受版本控制吗?

2 个答案:

答案 0 :(得分:1)

您可以通过为您的网站初始化git repo轻松完成此操作。

cd prod_site
git init
git add -A #You may want to ignore some files like libraries for example, use a .gitignore
git commit -m "Initial prod commit"

既然您的prod网站受版本控制,请创建一个分支,然后在其上复制您的暂存网站。

git checkout -b staging
cp -r /path/to/staging/website .
git commit -am "Staging website"

现在你有两个分支:

  • master与您的生产网站
  • staging与您的暂存网站

现在,您可以使用git diff

列出两个分支之间的差异
git diff master..staging

答案 1 :(得分:1)

是的,你可以做到。

您有以下几种选择: 但为什么不使用beyond compare

使用分支

# cd to the desired folder
# place the content of the first branch in the folder

# init the folder as git repository
git init

# add all the files in the directory and commit them to stash
git add . -A
git commit 

# create a new branch for the second content
git checkout -b <b2>

# now copy the second content to this folder

# add the content of the second branch to git
git add . -A

# commit the changes
git commit 

查看视图差异

简单的方法是在将第二个分支的内容添加到git

之前使用git status

在执行上一步之前:

git status

# now copy the second content to this folder
git add . -A
git commit 

# display the differences between the branches
git status

或     #显示当前HEAD和内容等待之间的差异     #将被提交     git add。     git diff

enter image description here

查看更改

您可以通过多种方式查看分支之间的差异

git log --cc
git log master ^b1
git log ^master b1     
gir format-patch HEAD~1

以及更多......