网站版权与免责声明
①由于各方面不确定的因素,有可能原文内容调整与变化,本网如不能及时更新或与相关部门不一致,请网友以权威部门公布的正式信息为准。
②本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。
③本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请作者在两周内邮件820921846@qq.com联系。
建议使用git svn和svn的服务器交互,那样就不会丢东西了。svn本身的update,是直接把服务器上的修改直接拿到本地,自动merge文件的,如果冲突需要你自己处理。不能回滚,是很反人类的。
其实原理很简单,就是利用svn的钩子:post-commit,在提交过后想做什么在这个脚本里就写什么。
假设我们的SVN目录是:/home/svn 我们需要同步的web目录是:/home/www/web(前提,这个web目录也是从svn里面检出的)本地电脑需要安装SVN客户端, 从SVN版本库地址中下载版本库目录到本地电脑中 把需要上传的文件存放到本地电脑中的SVN目录下 选中文件,点鼠标右键选择TortoiseSVN ,选择add或加入。
选中文件会显示一个+的图标,在鼠标右键菜单中点击“SVN提交” 弹出一个窗口,输入提交文件的理由或日志。点击右下角的确定, 这时,文件图标会显示“√”,代表文件上传完成。1、从服务器上克隆完整的Git仓库(包括代码和版本信息)到单机上。也就是说自己机器上有一个git仓库。这和svn是不同的,svn是没有本地的仓库的。所以git是先提交到本地仓库,然后推送到服务器。而svn是直接提交到服务器。这里说一下几个含义:拉取:将服务器中git仓库的数据拉取到本地git仓库,同时修改(更新)当前分支的文件获取:仅仅将服务器中git仓库的数据拉取到本地git仓库提交:将修改的文件提交到本地git仓库。推送:将本地git仓库上的数据推送到服务器。
2、在自己的机器上根据不同的开发目的,创建分支,修改代码。git和svn的一点不同在于svn是通过目录结构来区分不同的分支的。而git你可以点击切换/检出来切换不同的分支。在svn上右键点击RepositoryBrowser可以看见整个工程的目录结构在git上可以点击版本分支图查看整个工程的分支解构。
3、在单机上自己创建的分支上提交代码。
4、在单机上合并分支。
5、把服务器上最新版的代码fetch下来,然后跟自己的主分支合并。
6、生成补丁(patch),把补丁发送给主开发者。git分支保护:自己并没有权限推送到当前分支:1自己创建一个分支,2将自己创建的分支推送上去,3登录git,发送MergeRequests(合并分支的请求)给相关人员。4通知相关人员,并由相关人员将你的代码合并到主分支
一、 SVN常用命令
1、将文件checkout到本地目录
svn checkout path(path是服务器上的目录)
简写:svn co
2、往版本库中添加新的文件
svn add file
3、将改动的文件提交到版本库
svn commit -m “LogMessage” [-N] [--no-unlock] PATH(如果选择了保持锁,就使用–no-unlock开关)
简写:svn ci
4、加锁/解锁
svn lock -m “LockMessage” [--force] PATH
svn unlock PATH
5、更新到某个版本
svn update -r m path
简写:svn up
6、查看文件或者目录状态
1)svn status path(目录下的文件和子目录的状态,正常状态不显示)
2)svn status -v path(显示文件和子目录状态)
简写:svn st
7、删除文件
svn delete path -m “delete test fle”
简写:svn (del, remove, rm)
8、查看日志
svn log path
9、查看文件详细信息
svn info path
10、比较差异
svn diff path(将修改的文件与基础版本比较)
svn diff -r m:n path(对版本m和版本n比较差异)
简写:svn di
11、将两个版本之间的差异合并到当前文件
svn merge -r m:n path
12、SVN 帮助
svn help
svn help ci
方法如下:; 條萊垍頭
1、在本地仓库创建一个项目; 垍頭條萊
2、在第一次提交代码都需要进行添加,右键项目,选择TortoiseSVN ; 頭條萊垍
3、然后选择add选项; 萊垍頭條
4、通过选择项目内文件哪些需要提交和不需要提交; 萊垍頭條
5、确认上传的项目相关文件和路径,点击ok,即添加完成; 萊垍頭條
6、提交本地仓库的代码,右键项目文件,选择svn commit; 萊垍頭條
7、输入提交代码备注信息,以便同事查看时,是属于什么内容。这里可以选择哪些文件是要提交到代码仓库上; 垍頭條萊
8、点击ok之后,需要输入用户名和密码; 垍頭條萊
9、显示下列信息说明代码提交到中央仓库成功; 萊垍頭條
一般我们都是按以下步骤操作的:
1.先将那个目录checkout下来2.将要添加的文件或者文件夹放到这个目录中3.右击文件执行svn菜单中的add命令4.右击文件执行svn菜单中的commit命令如果只是单纯的提交一个文件到svn中某个目录用上面方法的话会不会很繁琐,如果能像共享文件夹那样直接复制粘贴多好,其实方法是有的。如果要将某个文件夹aa连同里面的文件一起放到svn的某个目录请按下面步骤操作:
1.右击文件夹执行svn菜单的import命令2.在弹出的对话框中选择要放到svn的哪个目录中3.确定即可如果你要提交的仅仅是个文件(假设为c:\test.txt)你会发现在右击的svn菜单中找不到import,这可能是svn的某个小bug,不过别担心,方法是有的:
1.打开cmd窗口2.输入TortoiseProc.exe /command:import /path:c:\test.txt然后回车3.这时会弹出和上面一样的对话框4.选择要存放的目录,注意这时点确定的话会提示错误,还需要在目录后加个文件名字,而这个文件名字必须是svn中不存在的,例如/test.txt,写成/xxx.txt也行5.确定即可用这个方法来操作文件夹也是可行的。
1、在自己的电脑桌面上,需要找到svn导出的项目。
2、下一步通过鼠标右键点击文件夹,选择Showlog这一项进入。
3、这个时候,会看到所有的相关文件。
4、这样一来确定打开一个对象以后,即可查看svn的提交记录了。
1、commit的时候,默认是只提交纳入SVN控制之下的文件,对于一个新建的文件,如果没有执行add操作,则默认不会提交这个文件到服务器;
2、如果是TortoiseSVN客户端的话,在commit的时候,会找出所有新建的文件,但不会自动勾选那些没有add的文件;
3、如果TortoiseSVN在commit的时候,不列出某些新建的文件,那么检查一下你本地的全局忽略样式(右键菜单TortoiseSVN——设置),是否这些漏掉的文件是因为符合某种忽略样式,而被自动过滤了
会
今天在帮新人提交SVN代码时,脑袋一热就给人家把代码覆盖了,这里复盘以下防止下次范同样的错误
1.是如何范错的?
右键项目->Team->与资源库同步->右键项目->覆盖/更新
2.如何找到已经被覆盖的代码?
在原基础上进行修改的代码类(针对没有关闭Eclipse的情况下):回忆自己改的代码的名称,然后ctrl+z即可找回代码
原来没有新创建的类:鼠标右键Team->show local history即可查看系统自动为我们保存的代码记录双击查看后即可找回(此方法也适用于修改类的代码)
①由于各方面不确定的因素,有可能原文内容调整与变化,本网如不能及时更新或与相关部门不一致,请网友以权威部门公布的正式信息为准。
②本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。
③本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请作者在两周内邮件820921846@qq.com联系。