IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 尚硅谷git学习总结 -> 正文阅读

[开发工具]尚硅谷git学习总结

1.Git概述

  • 分布式版本控制系统

什么是版本控制?

  • 记录文件内容变化
  • 记录文件修改的历史记录

image-20211028094431063

版本控制工具

集中式版本控制

  • 简单来说就是每次修改都直接去修改服务器(只有一台服务器)的代码
  • 问题就是容易单点故障

image-20211028094542324

分布式

  • 每个电脑都可以从远程库克隆代码,并且在本地来进行修改处理,然后推送
  • 能够在离线状态进行修改。
  • 就算远程库坏了,也能够自己在本地处理代码

image-20211028094800078

2.Git的工作原理

  • 工作区:就是电脑存放代码的地方
  • 暂存区:让git知道有这个代码,而且能被删除
  • 本地库:那么就会存入一个历史版本代码而且不能够被删除
  • 代码托管中心:其实就是远程库

image-20211028095117868

3.Git常用命令

一定要先设置签名也就是下面这两个,不然无法提交库,可以在用户的.gitconfig下面去查看是否设置成功

  • git config --global user.name 设置用户名
  • git config --global user.eamail设置邮箱

常用命令

  • git init 初始化库,能够建立一个.git文件
  • git status查看本地库的一个提交状况
$ git status
On branch master//当前分支

No commits yet//没有提交到暂存区

Untracked files://有一个没有被追踪的文件
  (use "git add <file>..." to include in what will be committed)

        hello.txt

nothing added to commit but untracked files present (use "git add" to track)


添加文件到暂存区和移除文件出暂存区

  • git add 文件名:添加文件到暂存区
  • git rm --cache 文件名:从暂存区移除文件

添加之后查询版本

  • git reflog:查询日志,看到版本号

  • git log:查询日志,全部版本号+提交者

  • 如果修改之后,那么文件就会被更新,git会发现文件更新那么就可以再次提交到暂存区,再从暂存区送到本地库

修改版本信息

  • git reset --hard 完整的版本号

image-20211028125933841

image-20211028121657025

4.git分支操作

1.什么是分支

  • 给用户使用的是master
  • 但是程序员开发一个功能可以通过克隆一份副本来单独开发一个功能,那么这种就是分支
  • 分支能够让功能开发独立于整个程序
  • 如果分支导致项目出现问题,可以通过hot-fix来修复恢复到之前的版本

image-20211028130159837

image-20211028130017103

2.分支操作

  • git branch -v:分支版本查询
  • git branch hot-fix:创建一个当前的mater的分支,相当于就是创建修复副本,然后通过切换到hot-fix进行测试
  • git checkout hot-fix:切换到hot-fix进行修改代码,也就是修改Head的指向。
  • git merge hot-fix:master和hot-fix进行合并。或者说当前分支和其它分支进行合并

image-20211028130547677

3.git冲突

  • 其实就是两个分支同时修改之后要合并到一个分支上面,那么这个时候他们修改了同一个文件,但是最后合并的时候不知道使用谁的,它会把分支的修改的内容合到一起,然后通过自己手动修改,然后提交
  • 本质就是head的指针指向来决定现在到底使用哪个版本,现在很明显就是mater指向一个新的版本,hot-fix也是指向一个新的版本,问题是head应该指向谁?合并的时候可以通过两个文件合并成一个版本,给head进行指向

image-20211028132543049

5.git团队协作

  1. push推送到远程服务器
  2. clone克隆项目到本地库
  3. pull把代码拉取过来更新自己的本地库

image-20211028133717934

分布式

  1. 两个远程库之间,其中一个fork代码给另一个库
  2. 然后另一个远程库clone修改之后交给其他库来pull拉取审核和合并

image-20211028133938065

6.github操作

创建远程库

  • git remote -v :查看远程库的别名
  • git remote add 别名 远程库的https或者是ssh:创建可以连接的远程库的别名
  • 注意这里如果使用gitee需要直接创建一个空的,千万不要加上任何模板会本地库和远程库的冲突问题

远程库和本地库的同步问题

  • 如果远程库发生修改,那么就要通过命令git pull (远程库地址) (本地分支) 来拉取到本地分支,本地库和远程库实现一个同步
  • git pull origin master:拉origin的代码到本地库master分支同步

clone

  • git clone origin :克隆项目到本地库
  • 它做了几件事
  1. 拉取代码
  2. 初始化本地库
  3. 创建别名(git remote -v来测试一下)

授予权限

团队内合作

  • 去到管理员这个地方,找到对方的邮箱然后添加之后把邀请函发送给他
  • 他只要接收那么就能够同步远程库

多个团队合作

  • 可以先把库fork过来
  • 修改之后发送pull request,如果通过那么就能够被合并。

ssh免密登录

  • 需要进入到c盘用户的.ssh文件找公钥,如果没有就生成
  • ssh-keygen -t rsa -c 邮箱:生成ssh公钥和私钥
  • 然后进入到设置ssh的位置加上公钥那么就可以通过ssh链接来进行pull和push了

7.忽略文件

  • 需要在c盘用户这里创建一个git.ignore文件,按照下面的模板
  • 忽略掉idea的iml,.idea等文件,防止个性差异导致程序无法运行

模板

# 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

hs_err_pid*

.classpath
.project
.settings
target
.idea
*.iml

8.idea整合git

  • 首先创建项目,设置setting->version control->git->调整要使用git.exe的位置
  • 接着就是上面边栏的VCS(版本控制系统)->import into version control->create git respo就是把当前项目让git监测到,也可以说交给git管理
  • 如果修改文件是蓝色或者是创建文件是红色,右键->git->add添加到暂存区,然后再commit添加到本地库

版本切换

  • 提交代码之后,左下角有个version control的log就是用来对commit的代码进行记录的
  • 右键其中一个的checkout就能够切换成功,实际上就是head在改变

image-20211028164110060

分支切换

  • 右下角这个git:master,点击之后可以创建分支或者是切换分支

image-20211028164451913

合并分支

  • 还是右下角的git:master,点击hot-fix的merge into current

image-20211028165008315

分支冲突

  • 如果修改hot-fix同时修改master分支,那么就会出现分叉现象。这种分叉就是代码冲突
  • 如果出现分叉那么就需要自己来手动把代码进行合并。
  • 还是操作右下角的合并操作

image-20211028165315504

image-20211028165133152

image-20211028165643281

idea登录gitee

  • 安装插件,setting->version control->gitee->添加账户(邮箱和密码)
  • 然后通过VCS->import into version control->share gitee把当前项目推送到远程库中

推送项目

  • commit之后,可以通过vcs->git->push或者是右键项目->git->push

拉项目

  • 还是跟上面的操作一样,如果发现本地库和远程库不同那么就git->pull拉取项目

clone项目

  • 通过这样的方式来创建项目,然后把url填入就可以了

image-20211028181410887

image-20211028181646565

总结一下idea的git使用

  • 版本控制左下角
  • 分支控制右下角
  • add和commit右键git或者vcs->git
  • 最后就是pull和push的应用。
  • 在提交到远程服务器的时候一定要确定自己的本地库是最新的,那么可以使用pull拉一下库
  • 整个过程(多人协作)
  1. clone项目
  2. 常规开发
  3. 提交前先pull最新项目
  4. push项目过去

分支的原理

  • 分支先更新了一步,但是master还在后面,但是可以通过merge把master同步过来。

参考学习原文链接:https://www.cnblogs.com/onelikeone/p/6857910.html

image-20211028183236444

image-20211028183110130

it或者vcs->git

  • 最后就是pull和push的应用。
  • 在提交到远程服务器的时候一定要确定自己的本地库是最新的,那么可以使用pull拉一下库
  • 整个过程(多人协作)
  1. clone项目
  2. 常规开发
  3. 提交前先pull最新项目
  4. push项目过去

分支的原理

  • 分支先更新了一步,但是master还在后面,但是可以通过merge把master同步过来。

参考学习原文链接:https://www.cnblogs.com/onelikeone/p/6857910.html

[外链图片转存中…(img-7Hm6Q5qg-1635417435219)]

[外链图片转存中…(img-n5jqjy7c-1635417435220)]

image-20211028183120192

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-10-29 13:15:51  更:2021-10-29 13:16:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:47:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码