2017-01-13 46 views
-1

我在本地使用git来管理我正在处理的这个MVC5项目。 UI人员不使用任何源代码控制或视觉工作室。它的工作方式是 - 我将视图上传到FTP进行更改的地方。然后我预计会在我的本地系统中下载(它会覆盖自我上次上传到FTP以来所做的任何更改)并合并这些更改。所以基本上,因为我在相同的文件上并行工作,所以他最终在相同文件的旧版本上工作。有选择地接受视觉工作室中的编辑?

但幸运的是,在几乎所有情况下,UI更改都与我自己的更改没有冲突,即它们位于文件的不同部分,而不是我的更改。所以,我想要做的就是能够以某种方式选择更改。例如,visual studio显示“与未修改的比较”中的更改,是否可以查看每个突出显示的更改并接受/拒绝提交?

或者(但不是最好),是否有可能检查更改并将两个版本的所有更改合并/提交到主分支?

我没有命令行使用git的经验,所以我真的希望在Visual Studio中实现这一点,如果可能的话。

下面是一个例子 -

原始版本 -

<div class="form-horizontal"> 
    <h4>Balance</h4> 
    <hr /> 
    <div class="form-group"> 
     @Html.LabelFor(model => model.Id, htmlAttributes: new { @class = "control-label col-md-2" }) 
     @Html.EditorFor(model => model.Id, new { htmlAttributes = new { @class = "form-control" } }) 
    </div> 
</div> 

我的我的更新后的版本 - (我只是改变model.Id到model.Name并增加了一个foreach循环)

<div class="form-horizontal"> 
    <h4>Balance</h4> 
    <hr /> 
    <div class="form-group"> 
     @Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" }) 
     @Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } }) 
     @foreach(var item in model.Items) {<span>@item.Name</span>} 
    </div> 
</div> 

他的更改后的版本 - (他刚刚在top div中添加了一个名为tableview的新类)

<div class="form-horizontal tableview"> 
    <h4>Balance</h4> 
    <hr /> 
    <div class="form-group"> 
     @Html.LabelFor(model => model.Id, htmlAttributes: new { @class = "control-label col-md-2" }) 
     @Html.EditorFor(model => model.Id, new { htmlAttributes = new { @class = "form-control" } }) 
    </div> 
</div> 

正如您所看到的,更改位于文件的不同部分。

+0

您的更改是否已提交到本地存储库?或者他们只是坐在你的工作文件夹? – PatrickSteele

+1

最佳选择:让他们使用git。接下来的最佳选择:使用分支和合并策略,并且每次推送到合并到“ftp”分支的FTP。来自其他开发者的任何更改都会在ftp分支之上进行(换句话说,他们使用git通过提交他们将通过FTP获得的内容进行的提交来“伪造”他们)。 – crashmstr

回答

0

建议您至少尝试一下git-gui,它会为您提供一个可视化的UI界面来显示当前文件的更改,您可以从该UI中选择您希望包含在下一次提交中的特定区块或行。

我一直都在用其他工具(例如Matlab *)来使用它,这些工具不能立即知道VCS集成。

我可以挑出粗略的临时变化,让它们看起来像是一系列小步骤! (并且可以从VCS记录中省略坏线)

(*)Matlab确实具有一些VCS感知能力,但不是以这种粒度。