一、介绍
Git是一个分布式版本控制工具
,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。
1.1 什么是版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
1.2 为什么需要版本控制
没有进行版本控制或者版本控制本身缺乏正确的流程管理,在软件开发过程中将会引入很多问题,如软件代码的一致性、软件内容的冗余、软件过程的事物性、软件开发过程中的并发性、软件源代码的安全性,以及软件的整合等问题。
1.3 版本控制工具
1.3.1 集中式版本控制工具
通过一个服务器,将多个用户连接到服务器进行文件的记录,用的时候每个人把自己需要的被授权的那部分代码下载到自己的计算机上,提交也是最后提交到服务器上,服务器可以对代码做很好的控制,但是需要有网络,网络断了,就没法工作了,如果服务器宕机了,将无法协同工作。
1.3.2 分布式版本控制工具
分布式就是每个人都有一份完全的代码,提交和管理都是在本地进行,虽然有远端仓库,不过那是最终提交用的,没联网本地也是完整代码的,只是每次需要最新的代码的时候才必须联网;而我们要说的Git就是分布式版本控制软件的代表,对应的网上仓库比较有名的就是Github了;
1.4. git的工作机制
1.5 Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般简单称为远程库
。
- 局域网:GitLab
- 互联网:GitHub、Gitee
二、Git常用命令
2.1 设置用户签名
首次使用git需要设置用户签名,否则无法提交带代码。
签名的作用是区分不同操作者的身份,用户签名信息在每一个版本的提交信息中能够看到,以此来确认本次提交是谁做的。
git config --global user.name 用户名
git config --global user.email 用户名
2.2 初始化本地库
git init
2.3 查看本地库状态
git status
2.4 添加到暂存区
git add 文件名
2.5 提交本地库
将暂存区的文件提交到本地库,形成历史版本。
git commit -m "日志信息" 文件名
查看版本信息的命令:
git reflog//精简版
git log//完整版
2.6 修改文件
文件修改后,文件状态会显示在工作区,此时需要执行git add 文件名
命令添加到暂存区,再通过git commit -m "日志信息" 文件名
提交到本地库。
2.7 版本穿梭
git reset --hard 版本号
版本号可以通过这个git reflog
或git log
得到。
head指向master分支,master分支再指向某个版本。
三、Git分支操作
3.1 什么是分支
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言,分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)
3.2 分支的好处
同时并行推进多个功能开发,提高开发效率。
各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
3.3 分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git btranch --v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
3.3.1 查看分支
3.3.2 创建分支
3.3.3 切换分支
3.3.4 合并分支
将hotfix分支合并到master分支上,需要处于master分支的状态下,输入git merge 分支名,完成合并分支(合并只会修改master的内容
)。
当有冲突时:
四、Git团队协作机制
团队协作:成员A push推送项目到代码托管中心,团队中的成员可以把clone项目下来,在修改完以后,成员B push代码后,成员A可以将项目进行pull更新。
跨团队协作:
五、GitHub操作
5.1 创建远程仓库
创建远程仓库教程
5.2 创建远程仓库操作
5.2.1 创建远程仓库别名
查看当前所有远程地址别名:git remote -v
为远程地址创建别名:git remote add git-demo(别名) https://github.com/82877340/git-demo.git
5.2.2 推送本地分支到远程仓库
git push 别名 分支
5.2.3 拉取远程库到本地库
git pull 别名 分支
5.2.4 克隆代码到本地库
git clone 链接
公共仓库克隆不需要登录账号,它会做以下步骤:
- 拉取代码
- 初始化仓库
- 创建别名
六、协作
6.1 团队内协作
首先成员A需要将成员B邀请进项目,变成项目的成员才可以进行操作。
成员B在克隆代码后,做的更改可以推送到远程仓库,但是要保证自己的代码时刻都是最新的。
6.2 跨团队协作
- 团队B找到要操作团队A的项目点击forke
- 团队B在自己的远程仓库进行修改,后添加并提交
- 点击pull requests,再点击 new pull request,再点击create pull request,填写详细信息完成创建便会发送一个请求。
- 团队A在pull request可以看到团队B发送的申请,点击merge pull reqeust就可以将提交的这个申请合并到当前自己的项目中。
七、SSH免密登录
- 复制SSH链接,到c盘的user(自己的电脑用户名)目录下,进入git bash界面,输入
ssh-keygen -t rsa -C 823777340@qq.com(邮箱地址)
- 进入user目录下的.ssh目录下,复制id_rsa.pub中的内容
- 进入账号的settings中,找到SSH and GPG keys,将公钥添加进去即可,后续使用SSH链接进行,pull或push等都不需要再验证密码。
八、IDEA集成Git
8.1 配置Git的忽略文件
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽IDE工具之间的差异。
- 创建忽略规则文件xxxx.ignore(前缀名随便起,建议是 git.ignore),这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig文件引用,建议也放在用户家目录下
此文件中复制如下内容:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
- 来到.gitconfig中添加如下内容:
[core]
excludsfile = C:/Users/long/git.ignore
注意:一定是/不是\
- 到Idea中配置git的位置
能看到版本信息则说明成功了
8.2 初始化&提交&添加
右击文件或目录选择Git下的相关选项就可以进行操作了,红色文件表示未添加到暂存区,绿色文件表示已经添加到暂存区但是没有提交,黑色文件表示未提交。
8.3 切换版本
8.4 创建分支
或者直接点击idea右下角的分支,就可以找到新分支。
8.5 合并分支
处于master分支,点击hot-fix分支,点击合并到当前分支,就会把hotfix的内容合并到master。
当发生冲突时,需要手动选择接受哪个分支的代码或者点击合并调整代码
九、IDEA集成GitHub
9.1 登录GitHub账号
9.2 分享项目到GitHub
9.3 添加ssh免密登录
9.4 克隆代码到本地
十、码云
10.1 IDEA集成码云
安装码云插件,在插件中搜索gitee下载安装
10.2 分享项目到码云
10.3 从GitHub中导入
在新建仓库时,选择导入即可。文章来源:https://www.toymoban.com/news/detail-405424.html
十一、gitLab自建代码托管平台
官网地址:https://about.gitlab.com/文章来源地址https://www.toymoban.com/news/detail-405424.html
到了这里,关于git的相关操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!