我们有一个网站在工作,我们保留两份副本 - 一个是实时网站,或主副本,另一个是测试/暂存网站,在复制之前进行大的更改并进行测试 - 此时手动 - 到现场并发布。
我们刚刚在网站上完成了结帐检修,导致创建或修改了大约40个文件。
我们可以创建两个git分支,每个站点一个,然后使用git生成差异列表并将测试更改合并到实际站点中,即使该站点当前不受版本控制吗?
答案 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在执行上一步之前:
# 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
您可以通过多种方式查看分支之间的差异
git log --cc
git log master ^b1
git log ^master b1
gir format-patch HEAD~1
以及更多......