SVN太难用了,我选择GIT

Posted WigginsLiu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SVN太难用了,我选择GIT相关的知识,希望对你有一定的参考价值。

01

前言


    编所在的小组使用svn服务器保存工程代码,所以日常大家都使用svn命令来维护项目工程,用了许久svn命令的我,被svn诟病蹂躏,渐渐狂躁。


     次提交很多代码文件时总会遗漏提交一些“调皮”躲起来的文件:



     样实现一个需求就要提交很多次,让主管看了,显得不是那么滴“专业”。


    个复杂的新功能增加,往往需要提交比较多的文件。除此之外,测试的时间也会增加很多。

     了功能设计和编码的时间,就是自测和“他测”的时间,自测所花的时间还好, 在这个“他测”的真实环境的过程中,如果编码考虑的不周,会进行修修补补,多次的编译、传送,所以这也就是编码完成之后不能立即上传服务器的原因。


     最后自测和“他测”都完成后,这个时间已过去了很久,如果中间再过个节啥的,比如刚过去的国庆,这么长的时间总会淡化脑海中纷繁复杂的记忆,等到再来准备提交代码时,已不熟曾经点点滴滴。


     会想:为啥不在编写代码时记录所修改的文件呢?这个小编也用过,冥思苦想写代码,修改了很多又杂又乱的文件,然后还有手动的记录一下修改的文件,编码已经掉了很多头发了,再记录又杂又乱的文件,就不能省去这个手动操作的步骤,让头发少掉一根吗?


     瞅着旁边另一个组使用git的同事,看他提交代码时,一次性提交很多代码修改的操作,猛如虎,惊的我留下了羡慕的眼泪:大兄de,让我看看你修改记录是啥?
 
    同事曰: git status


    惊! 我也要用git!


     手搜索了一下,原来还有这个大宝贝存在--git-svn。一个过度svn到git的工具。


     下来,让小编开始这个“愉快”的过程。


02

动手

   ------------------------ 
    系统: Deepin
    任务: 过度svn到git

        -------------------------------

  一、准备工作:

     1. 下载git-svn
    
      
      
    
sudo apt install git-svn
    2. 下载svn仓库的代码
git svn clone **** --username=***
      3. 如果svn上的commit记录很多,clone过程会非常慢,这时可下载指定历史版本后的记录
    
      
      
    
git svn clone -r2:HEAD file:///d/Projects/svn_repo proj1_git -s


       二、准备工作区:      
    
    Tip1:忽略权限
   
     
     
   
     
       
       
     
git config core.filemode false

     Tip2:忽略文件
 
        1.项目根目录下建立.gitignore 和.gitignore.sh (其中.gitignore放入未跟踪文件,比如新加的文件; .gitignore.sh放入编译产生的文件)

       2. .gitignore.sh:
        (1)git status > .gitignore.sh 
        (2)将其中的 未跟踪文件 内的内容删掉,保留跟踪的文件
       (3)使用替换功能将文件前面的部分替换为git update-index --assume-unchanged ,最后在文件的第一行加入#! /bin/sh
   
     
     
   
     
       
       
     
ps: #! /bin/sh git update-index --assume-unchanged  compatible_branch/boot/include/configs/zx279100_config.h git update-index --assume-unchanged  compatible_branch/boot/tools/buildimage
         (4)未跟踪的文件直接将文件放入.gitignore
        (5)git status 确认工作区是否干净


      三、日常操作:
    
    Tip1:查看已修改的文件
   
     
     
   
git status
    Tip2:查看log
    
      
      
    
git log (git svn log -v 可以显示每次修改提交的文件) git log -p (可以查看每次提交log和对应的修改内容) git log --stat (可以查看每次提交log和对应的修改文件) git log --author=*** (查看某人的log)
    
     Tip3:提交文件
    修改的文件直接在工作区中   
    
      
      
    
git add file ... (提交到暂存区) git commit (提交到本地仓库)


    Tip4:撤销文件
    
      
      
    
git checkout -- file (撤销工作区的修改, 注:如果没有--,表示切换到某个分支。) git reset HEAD file (撤销暂存区和本地仓库的修改)

    Tip5:同步svn仓库的文件到本地
    
      
      
    
git svn rebase

    Tip6:将修改提交到svn服务器
    
      
      
    
git svn dcommit


    Tip7:查看修改
    
      
      
    
git diff file (查看工作区中文件的修改) git diff --cached file (查看暂存区的修改) git show e70b4bec3cb226fa259dcbc4947551972e7ba54c --stat (查看本地仓库中修改了哪些文件) git show e70b4bec3cb226fa259dcbc4947551972e7ba54c file (查看本地仓库中具体某个文件的修改内容) git show e70b4bec3cb226fa259dcbc4947551972e7ba54c file (查看本地仓库中所有文件的修改内容)

    最后,珍惜生命,远离SVN。

以上是关于SVN太难用了,我选择GIT的主要内容,如果未能解决你的问题,请参考以下文章

怎么在Windows10中找回Windows7的照片查看器(Windows 照片查看器)win10新的照片查看器太难用了

怎么在Windows10中找回Windows7的照片查看器(Windows 照片查看器)win10新的照片查看器太难用了

有人可以解释啥是 SVN 平分算法吗?理论上和通过代码片段[重复]

学校APP太难用,码农爸妈们自己做出开源程序,官方却要报警

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)

公司的报表工具太难用,我三天撸了个Excel工具,运营小姐姐直呼太好用了,现已开源!!(建议收藏)