Linux下Git和Svn的使用

SVN:

1、安装SVN:sudo apt install subversion

2、检出: svn checkout 地址

3、上传新文件:svn add 文件名

                           svn commit -m "备注"

4、修改代码:直接输入:svn commit -m "备注"

5、删除文件:svn delete 文件名

                        svn commit -m "备注"

6、如果误删了文件:svn up 或者 svn revert -r version

7、查看最近5条提交日志:svn log --limit 5

8、比较本地文件与远程数据库中版本的差异:svn diff test.cpp

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

GIT:

1、安装git:sudo apt install git

2、安装ssh密钥:ssh-keygen -t rsa -C "邮箱名"

                             cat ~/.ssh/id_rsa.pub

                             在服务器的管理页面上添加此密钥

3、配置用户名和邮箱:git config --global user.name "用户名"

                                      git config --global user.email "邮箱名"

4、克隆代码到本地:git clone 地址

5、查看区别:git diff --stat   查看哪些文件不同

                        git diff hello.c  查看该文件与服务器上版本的区别

                        git diff 版本号1 版本号2 文件名 :比较该文件两个版本之间的差异

                        git diff --cached  查看已经add还没有commit的改动

6、查看提交日志并显示涉及到的文件:git log --stat

      查看最近提交的5条日志记录 : git log -n 5

6、添加文件:git add 文件名1

                        git add 文件名2

      删除文件:git rm test.txt (删除文件)

                        git rm -r test (删除文件夹)

7、提交到本地仓库:git commit -m "备注"

8、推送到服务器:git push origin master

10、查看本地分支:git branch

11、查看远程分支:git branch -a

12、基于某版本创建分支:git branch branchname 06ff30d771305dac9f161614c6faf03911a760e2

13、推送分支到服务器:git push origin branchname

14、切换分支:git checkout branchname

15、删除分支:git branch -d branchname

16、重命名分支:git branch -m oldname newname

17、提交所有修改:git commit -m "commit message" -a

18、提交单个文件:git commit -m "commit message" readme.txt

19、从远程更新文件到本地:git pull

19、将branchname分支的修改内容合并到本地分支并提交:git merge branchname

20、手动编辑冲突文件,解决冲突:git mergetool

21、查看当前分支的状态:git status

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

svn要先update再提交;git则相反,不要先pull,直接提交,否则很可能会产生很多冲突。

 

 

整个code是一个很大的工程,我想只checkout几个指定的目录即可,因为我经常用的就只有这几个,怎么办呢?


我在网上搜了一下,找到了方法,整理记录如下:


命令行方法:
命令行操作的话,先用svn co --depth=empty 检出空文件夹,然后再从这个空文件夹中svn up filename获得所需要的文件。 
(这种方法我已经亲自验证通过,脚本见附件。这样所有版本的svn我都可以很轻松的checkout到本地了,因为各个版本的svn的目录结构都是一样的)


TortiseSVN客户端方法:
1、使用TortiseSVN客户端检出所需文件的上级文件夹,在检出窗口中的“检出深度”处要选择“仅此项”,这样检出来一个空目录。
2、然后在检出的空文件夹上点右键,在弹出的TortiseSVN右键菜单中选择“版本库浏览器”,会列出该服务器上该文件夹下的所有文件。
3、点开自己关心子目录,右键,选择“更新项目至版本”,即可将该文件(夹)单独检出。SVN1.5版本以上才能实现该操作。在因为在这个以后的版中才有“update item to revision”
(这种方法我已亲自验证通过,可以在顶层文件夹update,会自动update指定的子文件夹)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值