我相信标题说的.我是源代码控制的新手.
所以,假设我有两个开发人员在同一个项目上工作,他们开始同时编辑同一个文件,然后每个人都会在稍微不同的时间发送新版本.根据我的理解,最后发送更改的人将保留他的更改,另一个人的代码将只在存档中!
那是对的吗?
请澄清.谢谢.
Cam*_*ner 35
不,那不太正确.这在某种程度上取决于你正在使用哪个版本控制软件,但我喜欢Git所以我会谈论它.
假设我们有一个文件Foo.java:
class Foo {
public void printAWittyMessage() {
// TODO: Be witty
}
}
Run Code Online (Sandbox Code Playgroud)
Alice和Bob都修改了文件.爱丽丝这样做:
class Foo {
public void printAWittyMessage() {
System.out.println("Alice is the coolest");
}
}
Run Code Online (Sandbox Code Playgroud)
鲍勃这样做:
class Foo {
public void printAWittyMessage() {
System.out.println("Alice is teh suk");
}
}
Run Code Online (Sandbox Code Playgroud)
爱丽丝先检查她的版本.当Bob试图检查他的时,Git会警告他存在冲突并且不允许将提交推送到主存储库中.Bob必须更新他的本地存储库并修复冲突.他会得到这样的东西:
class Foo {
public void printAWittyMessage() {
<<<<< HEAD:<some git nonsense>
System.out.println("Alice is the coolest");
=====
System.out.println("Alice is teh suk");
>>>>> blahdeblahdeblah:<some more git nonsense>
}
}
Run Code Online (Sandbox Code Playgroud)
的<<<<<,=====并且>>>>>标记显示该线被同时改变.Bob必须以合理的方式解决冲突,删除标记并提交结果.
那么最终存储在存储库中的是:
原始版本 - > Alice的版本 - > Bob的冲突修正版本.
总结一下:第一个提交没有任何问题,第二个提交必须在进入存储库之前解决冲突.你应该永远不会因为某人的变化被自动破坏而结束.显然Bob可以错误地解决冲突,但版本控制的优点是你可以回滚不正确的修复并修复它.
| 归档时间: |
|
| 查看次数: |
11258 次 |
| 最近记录: |