TortoiseSVN中SVN update、SVN commit、add的区别是什么?

TortoiseSVN中SVN update、SVN commit、add的区别是什么?,第1张

这三个操作在SVN上做的事情是不一样的。

update是把服务器上最新的版本下载到本地,前提是开发者本地有这个文件。

commit是将本地做过的改动,同步上传到SVN服务器,改动包括修改、新增、删除、改名、移动等。

add是把新建的文件添加到临时缓存区,需commit操作后才能真正上传到服务器。

扩展资料

Subversion 是如何工作的以及用到的术语做一个大致了解:

版本库

Subversion 使用集中的数据库,它包含了所有的版本控制文件及其完整历史。这个数据库就是版本库。版本库通常位于运行 Subversion 服务器的文件服务器上,向 Subversion 客户端(例如TortoiseSVN)提供需要的数据。

如果只备份一个东西,请备份版本库,因为它是数据的主副本

工作副本

这是实际工作的地方。每一个开发者在自己的电脑上都有属于自己的工作副本,有时可以将其理解为沙箱。可以将最新的版本从版本库上取下来,在本地的副本上工作而不影响其他人,如果对更改满意就可以将其提交到版本库中。

Subversion 工作副本不包含项目的历史, 但是它保存了修改前的本件的副本,就像这些文件在版本库中的状态一样。这意味着可以轻而易举的准确检查出都做了哪些改动。

还要知道从哪里开始运行 TortoiseSVN,因为在开始菜单中看不到。这是因为 TortoiseSVN 是一个外壳扩展,所以第一步,打开 Windows 资源管理器。在资源管理器中用右键单击一个文件夹,然后就会发现在右键菜单中出现一些新的条目。

依次检查以下问题。(假定远端库叫 origin, 分支是 xxx)

push 之前,确保你已经和最新的远端分支做过merge/rebase,命令为 git fetch origin, 然后 git merge [或rebase] origin/xxx

你push的branch错了,比如本地的 dev 分支是track远端的 xxx 分支,但是你push的是yyy分支。确保你的push命令正确,如下 git push origin dev:xxx

确保你没有修改过已经在远端分支上的历史

如标题描述,最近关于这个gerrit的submit type的设置引起了一个问题,我大概模拟了下开发的提交场景,如下:

开发A和开发B都在修改仓库repo_test的代码,开发A修改test1.txt 然后提交到gerrit上,并在gerrit上合入了这个提交(commitA),开发B没有执行git pull, 直接修改了test2.txt, 这个test2.txt和test1.txt没有任何关联性,是完全不相关的模块,然后开发B提交gerrit,然后gerrit上合入了这个提交(commitidB),此时,由于开发B的这个提交相对服务器少了开发A的改动提交,就自动生成了一条merge(叫commitB+吧),比如如下:

以上,B+是自动生成的merge,这个自动merge的记录在gerrit上是看不到的,真正的修改是在B,所以开发在gerrit上找到B,让我(职位:CM)在B节点标记tag,我在B标记tag后打包(我执行git checkout B),发现没有A的修改了,这就出问题了!!!但是git checkout B+就有A的提交!!

然后发现,是因为开发B没执行git pull ,没把A的改动带进去,所以提交的时候就自动产生了这个merge的提交记录,话说,使用rebase就不会产生,但是怎么搞呢?

然后发现了gerrit的submit type 可以控制:

默认的是“Merge if Necessary”, 这个就是在有差异的时候自动生成一条merge记录

所以换成“Rebase if Necessary”,这个会自动rebase,不会自动产生merge记录

如下是gerrit换成“rebase if Necessary”的提交记录:

STM32 对内部FLASH读写接口函数(转)

ymodem协议c实现(转)

STM32启动模式及API(转)

Keil STM32调试,使用ST-Link下载程序时提示“flash timeout.reset the target and try it again”

UVA 11020

LeetCode Maximal Square

Android中的消息机制

关于DPM(Deformable Part Model)算法中模型可视化的解释

Node.js能够做什么?

hdu 1071 The area

Linux经常使用命令(九)

[ACM] hdu 4248 A Famous Stone Collector (DP+组合)

linux程序设计——个人总结

poj3252-Round Number 组合数学

QML与C++交互:登陆界面设计

delphi2010发送邮件—中文显示为乱码解决

WCF探索之旅(五)——WCF与WebService的异同

数据库备份还原,日志清理代码

【Android】自己定义View、画家(画布)Canvas与画笔Paint的应用——绘图、涂鸦板app的实现

Berkeley DB基础教程

SSL和SSH的差别


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/471560.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-06-06
下一篇2023-06-06

发表评论

登录后才能评论

评论列表(0条)

    保存