SVN
程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。
基本的命令:
Checkout:把SVN仓库的代码下载到本地,比如你现在参与一个团队的项目,在你参与之前项目可能已经在运行或者技术主管也已经搭建好代码仓库,你可以通过checkout命令项目代码,获取相应的项目的代码。
Update:在你编写代码的过程中,项目参考者很可能已经提交过代码到SVN服务器,而你本地项目都是自己编写,肯定没有其他参与者新提交的代码,你可以通过update SVN获得SVN最新的代码。
Commit:当你完成一部分开发后并且程序中没有其它的错误,你可以通过commit提交代码到SVN服务器,服务器会产生一个新的版本,这样其它参与者就可以获取到您相应提交的代码。重要提示:每次必须先update再Commit。
注意事项:
打开下载的目录.svn这个隐藏目录记录着两项关键信息:工作文件的基准版本和一个本地副本最后更新的时间戳,千万不要手动修改或者删除这个.svn隐藏目录和里面的文件!!,否则将会导致你本地的工作拷贝(静态试图)被破坏,无法再进行操作。
svn的常用操作
1、迁出配置库内容(SVN Checkout)新建或进入目录下(比如E盘),右键 →SVN Checkout
下载完成后,服务器上所有内容会出现在本地文件夹下
2、更新文件(SVN Update)
1)当从配置库迁出相应目录后,他人对服务器上此目录内容进行了修改,则需要再次获取改动内容到本地目录的过程称为更新。更新可以针对一个文件、几个选中的文件或者整个文件目录。
2)点击“SVN Update”后会弹出窗口显示更新的进度
若上述框中的有文件出现亮红,说明来自配置库的内容与你本地修改内容合并时出现了冲突
3)提交更新(SVN Commit)
1】本地文件修改后,若是需要更新到服务器上,则需要提交(Commit)最新的更新。
Commit的作用是将本地最新修改的文件同步到SVN服务端,供其他人来参考或者使用,当然使用之前,要先Update一下,来确保是最新的,在修改文件上击右键,出现菜单,选择“SVN Commit…”
2】然后填写关于本次更新的日志(log message),这是必填项,否则commit会失败
4)增加文件(Add)
将需要增加的新文件放入到本地迁出的文件夹TestManger目录的相应位置中,鼠标选中新文件右键选择“Tortoise SVN”的“Add”项
鼠标选中文件夹右键选择“SVN Commit…”,将新文件上传配置库对应文件夹中(若只上传单个文件,只需点中单个文件上传即可)。
5)检查更新(Check for modifications)
此功能可以显示本地对文件所做的修改有哪些还没有提交。不光能看到对文件的修改变化,还包括增加文件或目录,删除文件或目录,移动文件或目录等。当他人提交了哪些文件的改动,也可通过此项来进行查询。
6)删除文件(Delete)
选中要被删除的文件,右键选择“Tortoise SVN”的“Delete”项,
删除文件后,鼠标选中文件夹右键选择“SVN Commit…”项进行提交,提交方式同增加文件的提交方式,提交后则将新文件从配置库中删除。
7)撤销更改(Revert)
在修改了某些文件后(文件未上传到配置库),需要返回到修改前的状态,则选中文件夹右键选择“Tortoise SVN”的“Revert…”项进行撤销,本地硬盘上的文件将恢复到修改前的内容,修改的内容将被删除。
GIT
git是个分布式版本管理工具,与集中式版本管理工具svn相反。
因为Git是分布式版本控制系统,所以需要绑定一个用户名和邮箱;以后我们每次提交代码都是用自己的用户提交的,这样就达到了在公司中,分辨多个开发人员提交的代码。
使用Git
设置使用者的信息
1、输入运行两条命令设置用户名和邮箱,设置一次就可以了:① git config --global user.name “自定义的用户名”, ② git config --global user.email “12345678@qq.com”
2、没报错就说明成功了,如果想要查询当前的用户名和邮箱,可以使用git config user.name, git config user.email两条命令
3、如果想要取消掉当前的用户重新设置新的用户名和邮箱可以使用git config --global --unset user.name “想要取消的用户名”,git config --global --unset user.email "想要取消的邮箱"这两条命令进行取消
创建本地库
1、创建一个目录, 进入该目录
2、通过git init命令将这个文件夹变成一个本地的仓库,以后就可以通过Git管理这个本地仓库了。
3、这时候我们发现当前目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本的,除非你明确知道自己在干什么,否则最好不要动这个目录里面的文件。
文件入库
1、把文件添加到版本库
1、在当前目录下创建一个文件,我这里创建一个readme.txt文件
2、通过命令git status查看当前仓库文件的状态。
3、 使用git add readme.txt命令把readme.txt文件加入到暂存区。再使用git commit -m "第一次提交readme.txt"把readme.txt从暂存区提交到版本库。
版本回退
1、使用命令git log查看历史版本记录
2、还可以按照每一次版本变更为一行内容进行显示,使用命令git log --pretty=oneline
3、现在我需要版本回退,想把当前的版本回退到上一个版本,可以使用如下两种命令:
1)git reset --hard HEAD^回到上一个版本,git reset --hard HEAD回退到上上一个版本,以此类推;
(在windows系统里,符号换行符默认是 ^,而不是\ ,所以它的more?的意思是问你下一行是否需要再输入,而^ 符号就被当做换行符而被git命令忽略掉了,可以用git reset --hard HEAD–版本号 代替)
2)如果回退到前50个版本的话,使用方法①就显得不太明智了,我们可以使用简便命令操作:git reset --hard HEAD~50就可以了
4、我们现在又想回到刚才回退之前的最新版本了,但是使用git log --pretty=oneline查看的是比当前老的版本,我们只能通过git reflog来查看比当前新的版本, 这时候我们看每一行都有一串黄色的字符,这个是每次的版本号。
5撤销修改和删除文件
1、现在在暂存区中增加b.txt文件,然后提交,再执行rm b.txt删除工作区的b.txt,我们可以打开文件夹看到,b.txt已经不在工作区了。
2、现在我们只是把b.txt从工作区中删掉了,但是前面我们已经把当前状态同步到了版本库了,注意这句话的表达方式,我为什么没说是把b.txt提交到版本库了,而是讲当前状态同步;
选择1)执行commit(commit有交托给的意思,可以品味一下这个命令的真正意义)命令,把当前状态提交到版本库,这样当前状态就会同步至版本库,版本库内的b.txt就会被删掉。
选择2)在我们没有commit之前,从版本库中恢复此文件下来:
可以使用git checkout – b.txt
这时候我们可以看一下工作区的b.txt又回来了,