svn和git的入门使用

来源:互联网 发布:网络通信招聘 编辑:程序博客网 时间:2024/06/04 18:39

掌握代码管理工具的使用,svn,git

  • 掌握代码管理工具的使用svngit
    • svn的基本使用
      • 一SVN服务器搭建和使用
      • 二客户端TortoiseSVN的使用
      • 三创建分支合并相互操作
    • Git的基本使用
      • 初始化一个Git仓库并提交一个文件
      • 修改项目里面的文件并在Git中查看修改状态并更新到仓库中
      • 版本的回退
      • 撤销修改
      • 删除文件
      • github远程仓库的建立及本地创建ssh链接并将代码推送到github仓库
      • git分支的创建和合并

svn和git都是使用很广泛的代码版本管理控制工具,在团队开发及迭代开发时,发挥很大的作用,

svn的基本使用

svn全称是Subversion,svn的使用分为以下几个步骤进行:

一.SVN服务器搭建和使用

下载地址
,安装完成后,建立版本库,在左边窗口右击新建Repository,Finish后,新建用户,给每一个用户设置name和password,之后再建立Group,把相应的用户拉进Group,给Group设定权限,一般设定有read only、read/write、No Access。这样服务端的搭建就差不多完成了。

二.客户端TortoiseSVN的使用。

tortoiseSVN下载地址
正确安装完成后,就可以右键鼠标就可以看见SVN的选项了,接下来就是要把我们在服务端创建的仓库check out到我们的本地了,在服务端的仓库右键点击Copy URL to Clipborad.即可拷贝项目的地址,
在svn客户端,我们可以进行
1.add:
将需要添加到版本库的文件:右键指定文件,点击SVN commit提交文件。
2.delete:
选择被删除文件,右键svn菜单执行”delete”操作,然后选择被删除文件的父目录,右键svn菜单执行”SVN Commit”.
3.rename:
修改文件名,选中需要重命名的文件或文件夹,然后右键“TortoiseSVNàRename“,在弹出的对话框中输入新名称,点击”ok”按钮,并将修改文件名后的文件或文件夹通过 “SVN Commit”提交到SVN服务器上。
4.SVN Revert:右击想要回退的文件或者文件夹,在TortoiseSVN弹出菜单中选择”Update to reversion…”,然后选择需要回退的版本,点击ok即可。
5.Check for modifications:
此功能可以显示你所做的修改有哪些还没有提交的,此功能不光能看到对文件的修改变化,所有的变化都能看到,包括增加文件或者目录,删除文件或者目录,移动文件或者目录等,如果你点击了检查版本库,那你还可以看到版本库里的改动,既别人提交了哪些文件的改动,你还没更新到本地
6.SVN UPDate
更新本地代码与SVN服务器上最新的版本一致,只要在需要更新的文件夹上点击右键或者在文件下空白处点击右键,选择”SVN Update” (获取指定版本中的内容,点击右键执行SVN菜单中的“Update to reversion“),就可以了。
7.show log
右键空白处,在svn选项里选择show log,通过此功能可以查到谁,什么时候,对那个目录下的那些文件进行了那些操作。
8.Repo-browser
版本库浏览,在本地文件夹下右键,选择TortoiseSVNàRepo-browser,在弹出的对话框中输入资料库地址,再输入用户名和密码,就能查看到你需要查看到版本库的内容
* ###解决更新文件时的文件冲突问题
当不同的人,同时修改了同一个文件的同一个地方,这时候,他提交了,我没有提交,我就提交不了,这个时候我们要进行先更新,然后在进行提交即可,
解决方案如下:
1.用revert(回滚)操作,该操作表示用户放弃自己的更新代码,然后直接提交,这个时候你的代码就会使服务器上最新的代码,即A用户提交的新代码,你的代码不会被提交.
2.**
进入代码编辑窗口,与同事协商合并代码**
选择文件->右键Editconficts:这种方法需要冲突双方经过协商之后将代码更改统一之后再提交。不仅解决了冲突而且还保证了代码是正确的,因为只有一方的代码被提交.
打开编辑窗口后会出现三个文件,红色的部分是冲突代码:theirs表示当前服务器端最新的代码,Mine表示自己修改后的代码,Merged表示合并后的代码。点击红色后右键选择:use this text block就可以将该部分代码作为合并后的代码

三、创建分支合并相互操作

由于需求的变更,需要增加新的需求,但是我们主干上还要继续往下开发,在此我们可以新建一个分支,来做增加新的需求那一块,主干上继续开发,等分支上代码没有问题的时候,再合并到主干上来。创建分支的最大的目的就是跟主线进行并行开发时候不影响主线的开发。
新建分支的操作步骤
1.在已经check out到本地的文件夹右键TortoiseSVN选项里面选择branch/Tag,在弹出的窗口输入新分支的路径以及log信息,点击ok按钮后,就可以在VisualSVN Serval服务器上新增newBranch,是从原服务器上的主干上的文件拷贝一份的。
2.现在直接进入branch文件下,右键 –> Chenckout下,就可以把newBranch下的所有文件提取出来了。分支目前建立在svn的服务器端,本地并没有更新,对本地branch文件夹 右键–> update即可,就可以更新到分支代码。
合并分支到主干上
当我们在分支上已经完整的实现了所需要的功能时,便可以把它合并在主干上了。在我们的主干(trunk)文件夹下,鼠标右键该文件夹 –> TortoiseSVN –> Merge ,在弹出的窗口选择第二个Merge two different trees ,再分别输入主干和分支的URL,便可以进行merge了,
**合并主干到分支
当主干上有一些必要的更新如jar包和资源方面的更新时,需要将这些也更新到分支上去,跟上面的操作类似,只是在选择From和To的URL时,要将主干和分支的URL调换过来,这样,就可以将主干上的资源更新到分支了。
到这里SVN的基本操作就介绍得差不多了,但是个人觉得SVN对比Git,在实际使用时并没有多少优势,所以如果是新项目开始的话,推荐使用Git进行代码版本的管理与控制。

Git的基本使用

  • git的安装: 下载地址:git
    然后选择默认安装即可,安装完成后,打开程序Git Bash,会弹出一个命令行编辑界面,然后输入
madir firstRepository    cd firstRepository    pwd  

用来创建git仓库的文件夹

初始化一个Git仓库并提交一个文件

使用git init命令。

添加文件到Git仓库,分两步:

第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;

第二步,使用命令git commit,完成。
截图说明
这样,我便完成了一个Git仓库的创建和文件的上传工作,

修改项目里面的文件,并在Git中查看修改状态并更新到仓库中

运行 git status 可以查看仓库当前的状态,提示我们仓库里的文件是否有改动,
如果存在改动,我们可以运行 git diff 可以查看修改后的本地文件和仓库里文件的difference,显示的格式正是Unix通用的diff格式。
之后我们就可以将改动过的文件 用git add GitReadme.txt 命令来添加文件,之后调用* git commit*来提交文件修改。
如下图所示:提交完成后再次调用 git status来查看当前的git仓库的状态,系统提示 working directory clean,说明修改已经成功提交了。

版本的回退

当我们已经进行了多次的版本的更新后,我们在电脑上进行了错误的修改,这时候就需要将代码版本回退到之前可用的版本,才行继续开发,所以我们可以先
调用 git log 查看git仓库的提交日志,会按更新时间的新旧显示一系列的更新日志,
在Git中,用HEAD表示当前版本,用HEAD^表示上一个版本,依次类推,HEAD^^就是上上个版本
注意,在执行 git log指令后,要退出时,需要按Q键退出
show log

我们使用 git reset来进行回退操作,比如我们要回退到上上个版本 则输入:
git reset –hard HEAD^^

HEAD指向的版本就是当前版本,因此,Git允许我们在版本的历史之间穿梭,使用命令git reset –hard commit_id。

穿梭前,用git log可以查看提交历史,以便确定要回退到哪个版本。

要重返未来,用git reflog查看命令历史,以便确定要回到未来的哪个版本。
版本回退

撤销修改

场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout – file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。

删除文件

在Git中,删除也是一个修改操作,我们需要删除项目里的一些文件的时候,可以直接删除或者调用 rm命令,然后调用 git status可以看到哪些文件被删除了,然后调用git rm指令删除删除版本库的文件,并 git commit 提交即可,
若是误删的话,调用 git check – file 将误删的文件恢复到最新文本。
tip:命令git rm用于删除一个文件。如果一个文件已经被提交到版本库,那么你永远不用担心误删,但是要小心,你只能恢复文件到最新版本,你会丢失最近一次提交后你修改的内容。

github远程仓库的建立及本地创建ssh链接并将代码推送到github仓库

  • 在本地创建SSH key:在git Bash 输入 sh-keygen -t rsa -C “youremail@example.com 然后一直回车默认选项即可。如果一切顺利的话,可以在用户主目录里找到.ssh目录,里面有id_rsa和id_rsa.pub两个文件,这两个就是SSH Key的秘钥对,id_rsa是私钥,不能泄露出去,id_rsa.pub是公钥。
  • 登陆GitHub,打开“Account settings”,“SSH Keys”页面,然后点“Add SSH Key”,填上任意Title,在Key文本框里粘贴id_rsa.pub文件的内容。点击 add key
  • 在github创建一个Github仓库:learngit,然后在本地关联github仓库:git remote add origin git@github.com:zoky2017/learngit.git,注意zoky2017是你的github账户名,origin是远程库的名字,
  • 将本地库的内容push到远程库:git push -u origin master

git分支的创建和合并

不同于SVN 的分支实现原理,Git创建一个分支很快,因为除了增加一个dev指针,改改HEAD的指向,工作区的文件都没有任何变化,当我们创建新的分支,例如dev时,Git新建了一个指针叫dev,指向master相同的提交,再把HEAD指向dev,就表示当前分支在dev上:

查看分支:git branch

创建分支:git branch

切换分支:git checkout

创建+切换分支:git checkout -b

合并某分支到当前分支:git merge

删除分支:git branch -d

彩蛋:在Android Studio 上传我们的项目代码到github上时,经常很纠结要上传哪些文件,Google官方的sample可以给我们点参考:
上传文件

参考博客:git教程

0 0