赞
踩
目录
2. 注册码云帐号【这里介绍一种的用法,其它也是一样的操作】
3 推送标签到远程仓库:git push 远程仓库名 标签名
4 检出标签:git checkout -b 分支名 标签名
版本控制(Revision control)是一种软件工程技巧。籍以在开发的过程中,确保由不同人所编辑的同一档案(项目代码)都得到更新。
利用版本控制,可以:
保存并可以回溯代码的历史版本
可以切换不同版本的代码
多人协同开发一个项目
备份源代码
协同开发时定位修改代码的责任人
CVS:早期版本管理软件
ClearCase:IBM企业级大型版本管理工具, 收费。
VSS:微软推出的版本管理工具, 较少使用
SVN:市面最流行的版本管理工具之一,拥有CVS所有功能,修复了CVS的不足
GIT:分布式版本管理工具。已经是大势所趋。Linus Torvalds开发的 (Linux)
Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。通过Git 仓库来存储和管理这些文件,Git 仓库分为两种:
本地仓库:开发人员自己电脑上的 Git 仓库
远程仓库:远程服务器上的 Git 仓库
git基本操作:
commit:提交,将本地文件和版本信息保存到本地仓库
push:推送,将本地仓库文件和版本信息上传到远程仓库
pull:拉取,将远程仓库文件和版本信息下载到本地仓库
git下载地址:Git - Downloads
双击git安装包,一路下一步直到最后。注意==安装的路径里,不要有中文、空格、特殊字符==
安装成功后,在桌面上右键会有以下选项:
Git GUI Here:在当前文件夹里打开git图形窗口界面
Git Bash Here:在当前文件夹里打开git命令行界面
安装好git之后,要使用git进行版本控制,通常需要配置一下自己的姓名和邮箱信息,用于在每次提交代码时作为自己的身份标识,这是非常重要的。
操作步骤如下:
在任意文件夹里右键(例如,在桌面上右键),Git Bash Here,打开git命令行界面
输入命令:
git config --global user.name '姓名'
建议都使用英文+数字
git config --global user.email '邮箱地址'
“邮箱地址”建议用真实邮箱地址
git config --global credential.helper store
让git存储gitee的帐号和密码,不需要每次操作远程仓库都输帐号密码
验证是否配置成功:
git config --list
Git中存在两种类型的仓库,即本地仓库和远程仓库。我们在git介绍里所谓的“git远程仓库”,其实就是这里所说的“git代码托管服务”
那么如何搭建Git远程仓库服务呢?其实我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有:
GitLab (地址: The most-comprehensive AI-powered DevSecOps platform | GitLab ),是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务
GitHub( 地址:https://github.com/ ),是一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: Gitee - 基于 Git 的代码托管和研发协作平台 ),是国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快
BitBucket(地址:Bitbucket | Git solution for teams using Jira) ,是一家源代码托管网站,采用Mercurial和Git作为分布式版本控制系统,同时提供商业计划和免费账户
远程仓库用什么,看公司的要求
1 注册gitee帐号
打开Gitee - 基于 Git 的代码托管和研发协作平台,点击注册按钮,输入信息进行注册
2 登录gitee帐号
点击登录按钮,进入登录页面。输入刚刚注册的帐号信息,点击登录
一个仓库,通常用于存储一个项目的代码。git会把一个项目的所有历史版本记录和代码,全部存储到一个仓库里。所以,我们可以理解为:一个仓库,就是一个项目的代码。一个项目,要创建一个仓库
1 点击“新增仓库”
2 设置仓库基本信息
3 查看仓库地址信息
查看空仓库的地址
如果新创建的仓库,里边没有任何内容,会显示以下界面
查看非空仓库的地址
如果仓库里已经有内容了,要获取仓库的地址,需要点击以下按钮:
4 邀请仓库成员
新创建的仓库,只有自己一个成员(自己是管理员),即只有自己能够向仓库里推送代码。而在实际开发中,一个项目通常是由一个小组的成员共同完成的,这就需要其它人员也能够看到此仓库、能够向仓库里推送代码。
为了实现小组共同完成项目,需要给仓库添加成员:
在实际开发中,通常有两种方式获取项目仓库:
作为架构师或Leader,需要:
创建空的共享仓库(例如gitee)
在自己的本机上创建项目版本仓库,推送到共享仓库(例如gitee)里,供组员clone得到初始项目仓库
作为项目组普通成员,只要:
直接从共享仓库(例如gitee)里克隆项目仓库到本机即可
获取本地仓库里的代码,开始开发工作
当我们得到仓库之后,这个仓库文件夹,就是项目文件夹:
开发人员在仓库文件夹里直接写代码
完成功能后,把代码提交到本地仓库,留下一次提交记录
在任意文件夹里打开git bash窗口,执行命令:git clone 仓库地址
如果帐号密码输错了,导致后边所有远程仓库的操作都失败,或者连接不上可以:
清理一下旧的远程仓库的认证信息:git config --system --unset credential.helper
然后重新操作,会让我们重新输入gitee的帐号和密码
创建一个文件夹,在文件夹里打开git bash容器,执行命令:git init
在git的版本库里,有三个区域是必须要了解的:
工作区:项目仓库文件夹里就是工作区,我们直接在这个文件夹里编辑代码。
版本库:工作区内有一个隐藏的.git
就是版本库,其中保存了项目的所有变更历史记录。如果把这个.git
删除掉,仓库就成为普通文件夹了,git不能再进行版本控制了
暂存区:.git
里的index
文件就是暂存区,也叫stage。暂存区是临时保存修改文件的地方
三个区域的运作模式:
工作区里的文件状态有三种:
untracked:未跟踪。表示文件是新创建的,还没有纳入到git的管控
tracked:已跟踪,已纳入git版本控制,随着操作又有不同的状态变化
Unmodifed:文件未修改,没有新的变化
Modified:文件已被修改
Staged:文件已暂存,已添加到暂存区了
1 查看仓库状态:git status
在tlias仓库文件夹里,先后执行命令:
查看仓库状态:git status
在仓库里创建文件a.txt
再次查看仓库状态:git status
Untracked files:未被git管控的文件有a.txt
2 添加文件到暂存区:git add
执行命令:
1.添加到暂存区:git add a.txt
,把a.txt添加到暂存区。
如果有多个文件一起添加,可以使用git add 文件1 文件2 ...
也可以用git add ./*
把当前文件夹里所有 有变化的文件全部添加到暂存区
2.再次查看仓库状态:git status
3 取消暂存或切换版本:git reset
取消暂存
执行命令:
取消暂存:git reset a.txt
,把a.txt
恢复成暂存命令执行之前的状态(已修改未暂存)
查看状态:git status
,发现a.txt变成了未暂存的状态
切换版本
如果要恢复成历史记录中的某个版本,可以执行命令:git reset --hard 版本号
2.3.4 提交到版本库:git commit
如果修改了某些文件,想要提交版本,必须先添加到暂存区才能提交:
把文件添加到暂存区:git add 文件1 文件2 ...
把暂存区内容提交到版本库:git commit -m '本次提交的描述'
5 查看版本记录:git log
如果想要查看历史提交记录,可以执行命令:git log
获取本地仓库,有两种方式:
直接克隆远程仓库,得到本地仓库:git clone 远程仓库的地址
本地文件夹里 初始化本地仓库:在本地文件夹里打开Git Bash Here,执行命令 git init
本地仓库操作:
如果新增或修改或删除了文件,需要:
把文件添加到暂存区 git add 文件路径 文件路径 文件路径...
把暂存区的文件取消暂存 git reset 文件路径 文件路径 ...
然后把暂存区里所有内容一次性提交到本地仓库,需要:git commit -m '提交的描述信息'
要查看过去的提交日志记录,需要:git log
要查看本地仓库的状态,需要:git status
如果仅仅把代码提交到本地仓库是不够的,我们是项目组合作开发,所以你提交的代码还要推送到共享仓库里,组内其它成员可以拉取到你提交的代码。反之,组内其它成员提交的代码,也要推送到共享仓库里,你也可以从共享仓库里拉取得到其它人的代码。
查看远程仓库:git remote
origin
是默认的远程仓库缩写代号。从远程仓库里克隆下来的项目,必定有这个名称
查看远程仓库详细信息:git remote -v
添加远程仓库:git remote add 仓库地址代号 仓库地址
注意:实际开发中,从某个远程仓库里克隆下来的项目,通常不需要额外再添加第二个远程仓库
刚刚仅作为语法的效果演示,实际开发基本不会这样操作,所以这里取消关联第二个远程仓库
git remote remove 仓库名
语法:git clone 远程仓库地址
注意:在之前的“获取仓库”一节中,已经演示过了,效果如下图所示:
当你的某个功能开发完成后,已经提交到了本地仓库,还需要再做一步:推送到远程仓库,其它人才可以从远程仓库里拉取到你的代码
语法:git push 远程仓库名 分支名
注意:第一次向远程仓库(例如gitee)推送时,会弹出窗口,需要输入远程仓库(例如gitee)的帐号和密码
如果组内其它人向远程仓库里推送了代码,而你想要从远程仓库里拉取得到最新的代码,就要执行拉取命令了
语法:git pull 远程仓库名 分支名
注意:如果本地仓库是自己创建的(而不是克隆下来的),并且有文件,然后从远程仓库里拉取代码时会报错fatal: refusing to merge unrelated histories
解决方法:git pull origin master --allow-unrelated-histries
进入公司以后,需要获取到本地仓库:
克隆:git clone 远程仓库地址
, 得到本地仓库。本地仓库里有所有的历史提交记录和所有的源码
然后一个仓库,就是一个项目。可以编写代码,完成功能。当功能完成以后,需要:
添加到暂存区:git add 文件路径
。
如果所有有变化的文件都是这一次功能的,可以一次性加:git add .
提交到本地仓库:git commit -m '描述信息'
添加一次提交记录,xxx在xxx时间修改了xxx文件
推送到远程仓库:git push origin master
语法:git push 远程仓库地址简称 分支名
如果不推送,组里其它人就不能获取最新的代码
如果要获取其它人推送的最新代码:
从远程仓库拉取:git pull origin master
语法:git pull 远程仓库地址简称 分支名
分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN。
如果两个平行宇宙互不干扰,那对现在的你也没啥影响。不过,在某个时间点,两个平行宇宙合并了,结果,你既学会了Git又学会了SVN!
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交并推送,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
仓库里默认会有一个分支,名称是master
删除本地分支:git branch -d 分支名
删除远程分支:git push origin -d 分支名
查看本地分支:git branch
查看远程分支:git branch -r
查看所有分支:git branch -a
创建新分支:git branch 分支名称
切换到指定分支:git checkout 分支名称
注意:切换分支前,要把工作区的内容提交或缓存起来。否则切换分支时会导致分支之间干扰混乱
我们刚刚创建的分支,都是本地分支,远程仓库里还没有这个分支。要推送到远程仓库的话:
推送到远程仓库:git push 远程仓库名 分支名
实际开发中,我们往往使用分支来开发自己的功能。当功能开发完成后,需要把功能分支的代码合并到dev分支。
合并分支:git merge 分支名
,把指定分支合并到当前分支
git里的标签,是指把某次提交状态的代码打上一个标记。通过这个标签,可以很方便的切换到标记时的代码。开发中,我们通常会把代码里某个特别稳定的版本打上标签,例如:
1 查看标签:git tag
查看已有标签:git tag
创建标签:git tag 标签名
,在当前提交的基础上创建标签
我们创建的标签仅仅是在本地仓库里,如果想将标签推送到远程仓库,可以使用推送命令
推送标签:git push 远程仓库名 标签名
如果想要切换到标签对应的代码,需要执行检出标签的命令
检出标签:git checkout -b 分支名 标签名
,将标签对应的代码检出成为一个新的分支
分支名:不能与已有分支名重复
实际开发中,通常是要开发一个功能,就创建一个新分支;要修改一个bug,就创建一个新分支
相关的操作命令:
创建分支:git branch 分支名
查看分支:git branch 查看本地分支; git branch -r 查看远程分支; git branch -a 查看所有分支
切换分支:git checkout 分支名
然后在分支里编写代码,添加暂存区,提交到本地仓库
注意:切换分支时,还未提交的代码,将会带到 目标分支里。
推送分支到远程仓库:git push origin 分支名
合并分支:git merge 分支名 把指定分支合并到当前分支
删除分支:git brand -d 分支名 删除的是本地的分支
git push origin -d 分支名 删除远程仓库里的指定分支
1 方式1克隆远程仓库
克隆远程仓库后,使用idea打开仓库代码(一个仓库就是一个项目)
打开idea时,从VCS版本控制系统里获取仓库
2 方式2初始化本地仓库
创建忽略文件
在开发中,有些文件是不需要纳入版本控制的。例如:target文件夹,.idea文件夹等。
想要让git忽略某些文件不管理,只要在==本地仓库的根目录==里创建一个文件.gitignore
(名称不要写错),在文件里配置要忽略的内容:
- target/
- .idea/
- *.iml
2. 启用版本控制整合
3. 选择版本控制工具,使用git
1.点击提交按钮
2.输入提交描述信息
3 查看日志
点击推送按钮
在idea的右下角,会显示当前分支。点击分支名称,会列出所有的分支,包括本地分支和远程分支
基于当前提交创建分支:
给分支起名称:
切换分支,即检出分支,操作如下:
先切换到master分支后,
再执行如下操作的效果是:把“feature-student”分支合并到当前的master分支
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。