一、引言
版本控制工具 svn git github 分布式
在单人开发过程中,需要进行版本管理,以利于开发进度的控制。
在多人开发过程中,不仅需要版本管理,还需要进行多人协同控制。
二、介绍
Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git 修改的是文件里的内容,不是文件
三、Git安装
1.下载Git
下载Git https://git-scm.com/downloads
2.安装
安装,除了安装位置外,其他一直下一步即可
3.基本配置
安装后,打开cmd
git config --global user.name "Your Name" #用户名
git config --global user.email "email@example.com" #邮箱
# 查看信息
git config -l
4.测试
git version 查看git版本
四、架构
版本库:工作区中有一个隐藏目录 .git,这个目录不属于工作区,而是git的 版本库,是git管理的所有内容
暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。
分支:版本库中包含若干分支,提交的文件存储在分支中
五、仓库
对应的就是一个目录,这个目录中的所有文件被git管理起来。
以后会将一个项目的根目录,作为仓库。
仓库中的每个文件的改动 都由git跟踪。
1.新建仓库
选择一个目录,执行指令:git init
2.工作区: 可以是 自定义的文件夹
执行git init的目录即为工作区,如上例,D:\repo1目录即为工作区【不包含.git目录】
所有文件,都首先在工作区新建,然后可以存入仓库(版本库),进行版本控制。
3.暂存区: .git 目录内
作用:可以让我们反悔的(撤回的)
暂存区也在 .git 目录内,工作区的文件进入仓库时,要先进入暂存区。
4.分支
版本控制,简单说,就是记录文件的诸多版本,分支就是这些版本的最终记录位置。
六、基本操作
先add,再commit -m
1.查看仓库状态
执行 git status 可以看到工作区中文件的状态(用于追踪文件)
2 暂存文件
3.提交文件
执行 git commit -m "这里写提交的描述信息" 作用是将暂存区的文件存入分支,形成一个版本
git init : 将本地文件夹和git联系起来
git add xx文件 : 添加工作区中的文件到暂存区
git commit -m "说明文字" : 将暂存区中的所有文件提交到分支上
git status : 查看文件状态
git log : 查看分支上所有的版本信息
git diff 文件名:查看修改过的信息
git reset --hard HEAD^ : 回溯到上一个版本 ^^^三个版本 ^100 一百个版本
git reset --hard 版本号 : 回溯到特定版本
git remote add origin 远程仓库地址:将本地仓库与远程仓库连接
git push -u origin 本地分支名称 :
git push -u origin master
将本地仓库推送到远程(第一次推送时 要加 -u 目的是将远程的master和本地的master关联到一起)
git clone 远程项目地址:克隆
git reset HEAD 文件名:将刚放入暂存区的文件,撤回(第一次反悔)
git checkout -- 文件名 : 撤回对文件内容的修改,一旦撤回成功,无法返回(1、撤销的文件是在工作区中的,还未进入暂存区)这条命令是危险的
2、如果从工作区add 到暂存区(1)时,这时再次对文件修改,使用 git checkout -- 文件名 时,会撤回到暂存区(1)时的状态。
删除:
1:rm 文件名.类型 删除本地库的文件 2:使用 git status 会检测到本地文件已被删除
3:选择真删除还是假删除(git checkout -- 文件名.类型 恢复)
4:真删除 git rm 文件名.类型 然后 git commit -m "说明文字 " 完成删除
5:如果本地库删错了,虽然本地库没有了,但版本库里还存在,可以进行回复
git reflog :查看历史操作
当电脑关闭时,还想要退回以前版本时 :
七、远程仓库
当多人协同开发时,每人都在自己的本地仓库维护版本。
但很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库。
1 远程仓库工作模式
2 远程仓库选型
有很多远程仓库可以选择,比如 github(https://github.com/),码云(https://gitee.com/);
此两种可以注册自己测试使用,但如果是商业项目,需要更多支持需要付费。
公司内部也可以有自己构建的远程仓库(http://qianfeng.qfjava.cn:8087/users/sign_in)。
3 基本操作
每个开发人员,在面对远程仓库时,会面临的一些基本操作。
3.1 注册git服务器账号
在 码云 注册账号,并登录。
进入公司后,很可能会使用公司自己搭建的git服务器,则账号向领导索要即可。
4、创建远程仓库:
5、如何将本地仓库传送到远程:
1、先创建一个远程仓库(远程仓库名称最好和本地仓库名称相同)
2、在本地仓库添加文件,然后提交到本地版本库
3、在本地仓库 黑窗口编写:git remote add origin ....(远程仓库的地址) 如下:
git remote add origin https://gitee.com/kongchong776/git_repositroy.git
4、将本地仓库推送到远程:git push -u origin master
(第一次推送时 要加 -u 目的是将远程的master和本地的master关联到一起)
6、如何将修改后的本地文件上传到远程仓库
7、如果修改的文件要上传到远程仓库前,已有人将远程仓库修改时:
应:
github 和gitee 差不多
8、密钥
第一步: $ ssh-keygen -t rsa -C "自己的邮箱地址"
第二步: 一般情况本地密匙会生成到
C:\Users\Administrator\.ssh 目录下,里面有公匙和私匙,私匙不能泄露,公匙可以对外使用
第三步: 将公匙id_rsa.pub里面的内容设置到github里面即可
注意: 可能设置好密匙以后,在向远程仓库push数据时还会让输入用户名和密码问
题,不是设置的密匙没有生效,而是因为在进行本地库和远程库连接时使用的远程
仓库的地址是https的地址,而ssh的密匙只针对于ssh提交有效,所以需要修改远
程库地址为ssh方式
修改https为ssh的方式:
第一步: 找到本地仓库里面的.git文件夹(是一个隐藏文件)
第二步: 修改里面的config配置文件里的url属性值为ssh地址即可
这时在向远程仓库提交就不会再让输入用户名和密码了。
八、分支
1、创建与查看
git branch : 查看分支
git checkout -b dev :创建dev分支,并切换到dev分支(组合命令):
相当于 git branch dev +git checkout dev
git branch 新分支名称 :创建新分支
git checkout 分支名 :切换分支
2、切换分支 git checkout ...
3、分支合并 -- git merge 目标分支
将目标分支合并到当前分支 (注意:不要写反)
4、查看所有分支
git branch
5、删除分支
git branch -d ...
6、将分支提交到远程仓库
git push origin dev(分支)
删除远程仓库中的分支
git push origin --delete dev(分支)
gitblit