标签:用户 实现 切换 mil 指定 告诉 之间 两种 操作记录
1.1:版本控制的作用:
记录每次对代码做了哪些修改,并且轻易的把代码回滚到历史上的某个状态
1.2:版本控制工具主要实现的功能:
1)版本管理: 允许可以很容易的对产品的版本进行任意的回滚,就是每修改一次代码,就帮你做一次快照
2)协作开发:开发人员过多时,可以确保一直存储最新的代码库,所有人的代码应该和数据库保持一致
1.SVN --CollabNet Subversion
svn是集中式版本控制系统,版本库是集中放在中央服务器的,首先从中央服务器拿到最新的版本,做完工作后,将自己做完的工作推送到中央服务器,集中式版本控制系统必须联网才能工作
2.GIT
GIT是分布式控制系统,没有中央服务器,每个人的电脑就是一个完整的版本库,工作期间不需要联网,只需要把自己的修改推送给对方,就能互相看到对方的修改了,也可以推送到git的仓库中
1. Git
git是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具,作用就是让你更好的管理自己的代码
2. GitHub
github是一个网站,就是每个程序员自己写的程序,可以在github上建立一个网上的仓库,2、你每次提交的时候可以把代码提交到网上,,这样你的每次提交,别人也都可以看到你的代码,同时别人也可以帮你修改你的代码,这种开源的方式非常方便程序员之间的交流和学习
3. SVN与git比较
1、Git是分布式的,SVN是集中式的,好处是跟其他同事不会有太多的冲突,自己写的代码放在自己电脑上, 一段时间后再提交、合并,也可以不用联网在本地提交
2、Git下载下来后,在本地不必联网就可以看到所有的log,很方便学习,SVN却需要联网;
1. 创建git版本库
1、版本库又名仓库,可以简单理解成一个目录,
2、这个目录里面的所有文件都可以被Git管理起来,每个文件的修改、删除,Git都能跟踪,以便任何时刻都
可以追踪历史,或者在将来某个时刻可以“还原”。
3、所以,创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目
4、瞬间Git就把仓库建好了,而且是一个空的仓库(empty Git repository)
5、可以发现当前目录下多了一个.git的目录,这个目录是Git来跟踪管理版本库的,没事千万不要
手动修改这个目录里面的文件,不然改乱了,就把Git仓库给破坏了。
mkdir 项目名称 #先创建一个项目 cd 项目名称 #切换到这个项目目录 git init #初始化这个项目
2. 工作区、暂存区、代码仓库
1、工作区: 就是在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目录版本库除外)。
2、暂存区 : 暂存区就是文件夹 .git中的一个小部分(.git文件夹就是版本库)
3、版本库:工作区有一个隐藏目录.git,这个不属于工作区,这是版本库, 版本库中还有Git
自动创建了第一个分支master,以及指向master的一个指针HEAD
3、 把文件添加到版本库分为以下三步:
1)vim Readme #工作区(Working Zone)
2)git add #暂存区(Stage zone)
3)git commit #代码仓库(Repository master) 只有提交到代码库才能被git管理
4、本地git基本命令
1、将文件添加到仓库
git add Readme #指定将Readme文件添加到暂存区
git add . #将当前目录中的所有文件全部添加到暂存区
git status #查看更改了哪些,创建了哪些,哪些没有添加到仓库,哪些添加到了仓库
git status diff readme #查看readme文件具体修改了哪些
git commit -m "commit tag" # git commit告诉Git,把文件提交到仓库-m后面输入的是本次提交的说明(版本名字)
说明:
# 执行git commit 命令时必须配置用户信息
git config --global user.name "Tom Git"
git config --global user.email tom@example.com
2、回滚
git log #查看所有提交到仓库的版本记录: git log -2
git reflog #查看所有操作记录(状态的md5值和改变的值)
git reset --hard d9e0ed0 #回到指定版本(d9e0ed0是创建版本的MD5值得前6位或者7位)
git reset --hard HEAD^ #回到上一个版本
注:这样可以回到第一次提交到仓库的状态,但再使用git log看不到其他几次的md5值了
3、撤销修改
vim Readme #我们在Readme文件中写了一些错误的代码
git add . #然后又一不小心将文件从工作区提交到了 stage区
git reset HEAD Readme #将Readme中刚提交到 stage区 的代码撤回到工作区
git status #查看目前工作区状态
git checkout -- Readme #将Readme在工作区错误的代码丢弃
4、删除操作(两种方法)
方法1:这种方法需要执行git add .
rm Readme
git add .
git commit -m "delete file by git rm"
git reset --hard HEAD^
方法2:这种方法可以省去执行git add .
git rm Readme
git commit -m "delete file by git rm"
git reset --hard HEAD^
注: 在没有git commit前,使用 git checkout -- Readme 可以恢复删除的文件(Readme)
5、强制使用master覆盖本地代码
$ git fetch --all
$ git reset --hard origin/master
$ git pull
标签:用户 实现 切换 mil 指定 告诉 之间 两种 操作记录
原文地址:https://www.cnblogs.com/xinghui1217/p/12066967.html