Git从入门到放弃从放弃到转行

一、Git简介与安装

1.Git概述

发展史:

git是在2005年的时候,由Linux之父Linus花两周时间开发的分布式版本控制系统

作用:

分布式版本控制

优点:

1.速度快
2.简单的设计
3.对非线性开发模式的强力支持(允许上千个并行开发的分支)
4.完全分布式
5.有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)

2.Git与Svn的区别

共同点:

都是分布式版本控制工具

不同点:

  • Svn:所有的电脑都连接到某一台服务器中,一旦断网就连接不到了

  • Git:git会先提交到本地仓库去,先在本地仓库来进行版本控制,如果需要多人配合开发,那么就只需要把你的版本推送到他的电脑即可

3.协作开发流程

在这里插入图片描述

4.Git安装

git的安装其实没有什么需要选择的东西一路next即可

如果有什么有需要注意的话那一定是下面这个,其他的没有选择的必要

在这里插入图片描述

5.Git的配置

配置签名:

git config --global user.name “nameVal”

配置用户名

git config --global user.email “emailVal”

配置邮箱

二、Git命令

1.创建版本库

步骤:

1.创建一个文件夹

2.进入文件夹

3.初始化版本库

命令:

//创建文件夹
mkdir 文件夹名
//进入文件夹
cd 文件夹名
//初始化版本库
git init

2.添加文件并提交

步骤:

1.创建文件或修改文件

2.把新文件或修改后的文件添加到临时区

3.把临时区的文件添加到本地库

4.把本地库的文件推送到外部或代码平台

命令:

//把文件添加到临时区
git add 文件名
//把文件提交到本地库
git commit -m "备注信息"
//把文件推送到平台
git push 连接名 分支名

3.工作区、暂存区、版本库

工作区:

其实就是你创建的文件夹,也就是你初始化仓库的那个文件夹

暂存区:

临时区,其实就是一个临时放代码的地方,这里必须要提交到本地库才有数据

版本库:

工作区下的隐藏目录.git文件夹下,被称为版本库,存放的就是每次提交到版本库的信息,也可以称为本地库

4.文件的修改、状态、日志

比较差异:

//拿仓库中的这个文件的最新版和工作区的文件对比
git diff 文件名

查看状态:

git status

查看日志:

//查看配置信息
//如果需要翻页,enter或者小键盘↓来翻页移动,退出ctrl+c退出
git log

//美化缩小版
git log --oneline

5.版本回退

退回到某个版本:

git reset --hard 版本号

6.撤销修改

//撤销工作区的修改
git checkout -- 文件名
    
    
//撤销暂存区的修改
//1.先撤销暂存区的修改
get reset head 文件名
//2.再撤销工作区的修改
git checkout -- 文件名

7.忽略文件

作用:

上传时忽略这些文件,因为写好代码测试运行之后,会有一些生成文件,而多人协作的时候别人不需要你这些文件,所以就要忽略这些不需要的文件。

创建方式:

在当前工作区创建.gitignore忽略文件

配置信息:

# 1: 打开`git bash here` 输入如下命令:
vim .gitignore
target
*.iml
.idea

# 2: 保存退出 
:wq

gitignore 语法规则:

空行或是以 # 开头的行即 注释行,将会被忽略。

示例如下:

# 忽略所有 .a 文件

*.a

# 递归忽略 build/ 文件夹下的所有文件

build

# 忽略 /doc/notes.txt,不包括 doc/server/arch.txt

doc/*.txt

# 忽略所有的 .pdf 文件 在 doc/ directory 下的

doc/**/*.pdf

三、Git上传远程仓库

1.添加远程仓库地址:

# 执行此命令必须要进入该仓库对应的工作区
# 为了方便记忆,这个连接名可以随便改
# github
git remote add origin https://github.com/pkxing1/gitdemo.git
# 码云
git remote add origin2 https://gitee.com/leesiuwah/gitdemo.git

# 删除之前关联:
git remote rm origin
git remote add origin 改成新的地址

2.同步本地仓库到远程仓库:

# github
git push -u origin master

# 码云
git push -u origin2 master

3.克隆远程仓库到本地:

# 克隆远程仓库到本机
# git clone ssh/https 
# github
git clone https://github.com/pkxing1/gitdemo.git
# 码云
git clone https://gitee.com/leesiuwah/gitdemo.git

4.多人协作容易出现的问题:

 ! [rejected]  master -> master (fetch first)
error: failed to push some refs to 'https://gitee.com/kekesam/pingyougou2.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解决方案:

//说明: 它会把远程仓库中所有的信息全部清空,在把本机仓库版本提交上去。
git push -f origin master

5.配置ssh协议登录

为什么使用SSh协议登录:

ssh协议: 免密登录,加密传输 
https协议: 用户名与密码登录

加密方式:

非对称加密:加密和解密使用不同的秘钥

​ 公钥:加密,私钥解密

​ 私钥:加密,公钥解密

对称加密:加密和解密使用同一个秘钥。

创建SSH密钥

  • Git-bash中已经集成了ssh功能,所以我们只需要简单的命令,即可生成密钥:

    命令: ssh-keygen -t rsa

    一路回车向下走,不要输入任何内容即可!

    ssh-keygen -t rsa 一路三个回车

  • 执行命令完成后, 在C:\Users\Administrator\.ssh下面生成公钥和私钥:

  • 具体步骤如下:

    第一步: 打开命令工具"git bash here" 输入命令 “ssh-keygen -t rsa” 生成密钥和公钥

    ssh-keygen -t rsa
    

    第二步: 然后将C:\Users\Administrator\.ssh生成的公钥文件【id_rsa.pub】内容复制出来

    第三步:

    • 打开gitee官网–【登录】–【设置】-【SSH公钥】

    • 打开github官网–【登录】–【settings】-【SSH and GPG keys】

    第四步: 测试和体验ssh的免密操作

    • 添加远程仓库和本地仓库的关联:(origin 是默认的远程版本库名称)

      # github
      git remote add origin git@github.com:zhjpkx/gitdemo.git
      
      # 码云
      git remote add origin2 git@gitee.com:zhjpkx/gitdemo.git
      

      提示:如果你想更换远程仓库的地址:

      git remote rm origin      # 删除原来的origin
      git remote rm origin2     # 删除原来的origin2
        
      # 然后在执行
      git remote add origin  远程仓库地址
      
    • 提交代码到远程仓库中:

      git push origin master
      git push origin2 master
      
    • 克隆远程仓库到本机:

      # github
      git clone git@github.com:pkxing1/gitdemo.git
      
      # 码云
      git clone git@gitee.com:leesiuwah/gitdemo.git
      

      注意:新克隆下来的远程仓库访问名称默认为 origin

    • 拉取最新代码到本机

      git pull origin master
      

      注意:记得将https地址更换ssh地址。

6.分支的创建、切换、合并和删除

创建分支:

git branch dev   创建分支 dev
git checkout dev  选中当前分支  dev

# 注:上面两个命令可以组合成一个复合命令
git checkout -b dev
# git checkout -b dev  = (git branch dev +  git checkout dev)

查看分支:

git branch

合并分支:

# 切换回master分支
git checkout master
# 将dev下面的内容全部合并到master
git merge dev

删除分支:

git branch -d dev

7.git命令总结

命令含义
git init初始化仓库
git add添加到暂存区
git commit -m “日志信息”提交到本地仓库
git status查看状态
git log 或者 git log --oneline 或 git reflog查看日志
git diff查看版本差异
git checkout – 文件名撤销工作区修改
git reste --hard 文件名撤销暂存区修改
git reset --hard 版本号回退到某个版本
git remote add 连接名 仓库地址本地仓库关联远程仓库
git remote rm 连接名删除关联的远程仓库
git push 连接名 分支名推送本地代码到远程仓库
git pull 连接名 分支名拉取远程仓库代码
git clone 远程仓库地址克隆远程仓库代码
git brancd 分支名创建分支
git checkout 分支名切换分支
git merge 分支名合并分支
git branch查看当前分支
git branch -d 分支名删除分支

四、客户端TortoiseGit

概述:

一个带有GUI界面的git,配合git使用,可以让我们在界面里操作,而不需要写命令

虽然是带GUI的,但是由于我们经常在编译中直接使用,所以很少会用这个

而且因为可以配置成中文的没有任何操作难度,所以难点就只剩下安装了

安装:

小乌龟的安装其实也没有什么难度,也没有什么比较难的配置

其实只有两个需要配置的点,一个是git的路径,一个是用户名和email

如果你不喜欢英文,安装好之后可以直接去官网下载中文包

五、IDEA操作Git

这点其实没有太多要说的,如果有不清楚的可以去看一下我之前的另一个关于IDEA操作Git的文章:IDEA git上传码云、GitHub、华为云

关于实际操作,可能遇到的问题就是版本冲突了

那什么是版本冲突呢?
其实就是多个人同时修改某个公共部分的代码,使得合并分支的时候不能兼顾

接下来就说一下版本冲突在IDEA中的操作

IDEA解决冲突

制造冲突:

1.先在主分支创建一个类,并写几行代码,并提交到本地库
在这里插入图片描述
2.创建分支,然后再分支中修改代码,并提交到本地库

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

这表示已经切换到了分支中
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.切换回到主分支修改并提交到本地库
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.尝试合并分支,也就是在这里出现错误

在这里插入图片描述

解决方案:

1.选择合并方式
在这里插入图片描述

2.选择要自己合并

在这里插入图片描述
在这里插入图片描述

3.比较双方的代码,然后根据需要选择,顶上面的箭头就可以直接把代码拿过来了。修改好之后点apply就这样了
在这里插入图片描述

4.记得提交代码到本地库,看到这样就表示合并分支彻底完成了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值