git学习笔记

1 篇文章 0 订阅
1 篇文章 0 订阅

视频与资料

【尚硅谷】5h打通Git全套教程丨2021最新IDEA版(涵盖GitHub\Gitee码云\GitLab):https://www.bilibili.com/video/BV1vy4y1s7k6

本笔记下载地址:https://download.csdn.net/download/weixin_42681761/19068303

Git 官网:https://git-scm.com/

Github 官网:http://github.com/

码云 官网:https://gitee.com/

Git

一、Git 介绍

​ Git是一个免费的,开源的分布式版本控制工具,可以快速高效地处理从小型到大型的各种项目

​ Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。

​ Git工作机制:

工作区
暂存区
本地库
远程库
二、Git下载安装
  1. Git下载:https://git-scm.com/

  2. Git安装

    查看协议

    image-20210522213539917

    Git选项配置

image-20210522213103501

​ 建议选择Git的默认编辑器

image-20210522213728676

​ 修改Git的环境变量

image-20210522213904954

​ 选择后台客户端连接协议

image-20210522214001144

​ 配置Git文件的行末换行符

image-20210522214110395

​ 选择Git终端类型

image-20210522214222291

​ 选择Git pull合并的模式

image-20210522214309461

​ 选择凭据管理器

image-20210522214430399

​ 其他配置

image-20210522214523964

​ 实验室功能,不要勾选

image-20210522214613929

​ 安装完成后,在桌面任意位置右键 > 选择 Git Bash Here > 输入 git --version 查看 git版本,验证是否安装成功。

image-20210522214925655

三、Git常用命令
命令作用
git config --global user.name 用户名设置用户签名
git config -- global user.email 邮箱设置用户签名
git init初始化本地库
git add 文件名把工作区文件添加到暂存区
git add 文件夹把工作区文件夹添加到暂存区
git add 文件名 文件名 文件名把工作区多个文件添加到暂存区
git add --all把工作区所有文件添加到暂存区
git rm --cached 文件名把文件从暂存区删除
git rm --cached 文件名 文件名 文件名把多个文件从暂存区删除
git commit -m "版本说明" 文件名把暂存区文件提交到本地库
git commit -m "版本说明" --all把暂存区所有文件提交到本地库
git status查看本地库状态
git reset --hard 版本号版本穿梭
git reflog查看版本信息
git log查看版本详细信息
1. 设置用户签名

说明:签名的作用是区分不同操作者的身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。这里设置的用户签名和用来登录其他代码托管平台的账号没有任何关系。

操作方法:

打开 Git Bash,依次输入下面命令并回车。

命令:

git config --global user.name 用户名
git config -- global user.email 邮箱

​ 查看是否设置成功:

C盘 > 用户目录 > 当前用户 > .gitconfig 文件

image-20210522221020937

2. 初始化本地库

指定工作目录下 > 右键 Git Bash Here > git init > 产生 .git 目录。

命令:

git init

image-20210522221711352

3. 查看本地库状态

命令:

git status

没有提交且不需要提交
image-20210522222200725

没有提交但检测到未追踪的文件

image-20210522223132780

4.添加工作区文件到暂存区

命令:

git add 文件名

image-20210522223810166

5.从暂存区删除已追踪文件

命令:

git rm --cached 文件名

image-20210522224317751

6.将暂存区文件提交到本地库

命令:

git commit -m "版本说明" 文件名

image-20210522225329357

7.查看本地库历史版本

命令:

git reflog

git log

image-20210522230320852

8.修改文件

image-20210522231338103

image-20210522231601138

9.版本穿梭

命令:

git reset --hard 版本号

image-20210522233206899

四、Git分支

在版本控制过程中,同时推进多个任务,我们就可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己的分支的时候,不会影响主线分支的运行。

好处:同时推进多个功能开发,提高开发效率。

各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响,失败的分支删除重新开始即可。

常用命令:

命令作用
git branch 分支名创建分支
git branch -v查看分支
git checkout 分支名切换分支
git merge 分支名把指定的分支合并到当前分支上
1. 创建分支
git branch 分支名

image-20210523010139356

2. 查看分支
git branch -v

image-20210523010258062

3. 切换分支
git checkout 分支名

image-20210523010543898

4.合并分支
git merge 分支名

image-20210523011835446

5. 冲突合并

冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改。Git无法替我们决定使用哪一个。必须人为决定新代码内容。

5.1 模拟产生冲突

在当前分支为 master 分支时,往 helloGit.txt 文件里面添加 “master:大家好!”并保存,接着把 helloGit.txt 添加到暂存区,然后把 helloGit.txt 提交到本地库。

image-20210523013838383

把当前分支切换成 hot-fix,然后打开 helloGit.txt,由于没有合并 master 分支,所以此时看到的内容是空的。

image-20210523014331289

在当前分支为 hot-fix 分支时,往 helloGit.txt 里面添加 "hot-fix:你们好!"并保存,然后添加到暂存区并提交到本地库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4aADuAiw-1621990822205)(D:\install\Typora\files\git\git学习笔记.assets\image-20210523014831675.png)]

再切换成 master 分支,执行合并 hot-fix 分支的命令,就会产生冲突。

image-20210523015334652

5.2 解决冲突

编辑有冲突的文件,删除特殊符号,决定要使用的内容,然后添加到暂存区并提交到本地库(此时执行 git commit 命令时不能带文件名)。

特殊符号:<<<<<<<<< HEAD当前分支的代码============合并过来的代码 >>>>>>>>>hot-fix

image-20210523015958320

此时解决的只是 master 的合并冲突,当切换回 hot-fix 分支时,文件内容还是原来的内容,hot-fix 想要合并 master 分支的内容,也需要执行上面的步骤。

五、Idea集成Git
  1. 配置 Git 忽略文件(可以忽略)

原因:与项目的实际功能无关,不参与服务器上部署运行。

忽略方法:

① 在当前用户目录下,创建忽略规则文件 xxxx.ignore。可共用模板如下:

# Created by .ignore support plugin (hsz.mobi)
### JetBrains template
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio
 
*.iml
 
## Directory-based project format:
.idea/
# if you remove the above rule, at least ignore the following:
 
# User-specific stuff:
# .idea/workspace.xml
# .idea/tasks.xml
# .idea/dictionaries
 
# Sensitive or high-churn files:
# .idea/dataSources.ids
# .idea/dataSources.xml
# .idea/sqlDataSources.xml
# .idea/dynamic.xml
# .idea/uiDesigner.xml
 
# Gradle:
# .idea/gradle.xml
# .idea/libraries
*.log
 
# Mongo Explorer plugin:
# .idea/mongoSettings.xml
 
## File-based project format:
*.ipr
*.iws
 
## Plugin-specific files:
 
# IntelliJ
/out/
 
# mpeltonen/sbt-idea plugin
.idea_modules/
 
# JIRA plugin
atlassian-ide-plugin.xml
 
# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties

image-20210524223743977

② 在 .gitconfig文件中引用 .ignore 忽略配置文件。

image-20210524224029003

  1. Idea 定位 Git 程序。

image-20210524224353550

  1. 初始化本地库(git init)

image-20210524224541157

  1. 添加工作区文件到暂存区(git add 文件名)

image-20210524225141888

  1. 将暂存区文件提交到本地库(git commit -m “描述” 文件名)

image-20210524225245592

image-20210524225425167

  1. 版本穿梭(git reset 版本号)

image-20210524225759092

  1. 创建分支(git branch 分支名)

image-20210524225945000

image-20210524230230540

  1. 切换分支(git checkout 分支名)

image-20210524230731977

  1. 合并分支(git merge 分支名)

image-20210524230559322

  1. 冲突合并

image-20210524231001892

image-20210524231347701

image-20210524231431491

Github

一、常用命令
命令作用
git remote -v查看当前所有远程地址别名
git remote add 别名 远程库地址给远程库地址起别名
git push 别名(链接) 分支名推送本地分支上的内容到远程库
git clone 远程地址将远程库的内容克隆到本地
git pull 别名 分支名将远程仓库对于分支最新内容拉下来后与当前本地分支直接合并
二、创建远程库

image-20210523131525563

三、远程库别名
  1. 查看当前所有远程地址别名

命令:

git remote -v
  1. 创建远程库别名

复制远程库https链接

image-20210523131727605

命令:

git remote add 别名 远程库地址

image-20210523132927286

四、代码推送 Push

命令:

git push 远程库别名(链接) 分支名

输入Github账号密码,推送成功。(Github是国外网址,容易超时)
image-20210523134453779

五、代码拉取 Pull

命令:

git pull 别名 分支名

image-20210524204716180

六、克隆远程仓库到本地
git clone 远程库地址

image-20210524205521593

image-20210524205931211

七、团队协作
  1. 团队内协作

邀请同伴,让同伴拥有推送代码的权限

image-20210524211253680

image-20210524211315790

  1. 跨团队协作

2.1 翔将远程库地址复制发给邀请跨团队协作的人,如张三。

image-20210524212938400

2.2 张三打开链接,然后点击 Fork 将项目叉到自己的远程仓库。

image-20210524213039555

2.3 张三就可以在自己的远程仓库编辑项目并提交。

2.4 张三点击 Pull 创建一个新的请求,并发给翔。

image-20210524213702677

image-20210524213756472

2.5 翔可以看到有一个 Pull request 请求。

image-20210524213817219

2.6 翔确认过后,可以点击 Merge pull request 合并张三的代码。

image-20210524213911902

八、SSH免密登录

在当前用户文件夹空白处,右键 > Git Bash Here > 输入ssh-keygen -t rsa -C 指定邮箱 命令 > 同时敲击回车三次 > 生成 .ssh 目录

ssh-keygen -t rsa -C 指定邮箱

image-20210524215306531

.ssh目录结构

image-20210524215443250

用记事本打开 id_rsa.pub 公钥,复制里面的内容

image-20210524215659258

往Github添加SSH

image-20210524220957689

image-20210524221157851

image-20210524221245643

接下来操作远程库就可以使用SSH连接而不需要登录了。

九、Idea集成Github
  1. Idea使用账号密码登录github

image-20210525210051204

  1. Idea使用token登录github

image-20210525210335272

image-20210525210531146

image-20210525210555155

image-20210525210835482

image-20210525210856173

  1. 分享工程到Github

image-20210525211447584

image-20210525211656094

  1. push 推送本地库到远程库

image-20210525212157301

image-20210525212350535

image-20210525212532226

  1. pull 拉取远程库到本地库

image-20210525212650172

image-20210525212736290

  1. clone 克隆远程库到本地

image-20210525212831648

image-20210525212910173

Gitee码云

官网:https://gitee.com/

一、码云创建远程库

image-20210525213807012

二、Idea集成Gitee码云
  1. Idea 安装 Gitee 插件

image-20210525214012861

  1. 登录 Gitee

image-20210525214201102

其它操作和 Github 几乎一样。

三、码云连接Github进行代码的复制和迁移

image-20210525215011948

image-20210525215106835

完结撒花

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Feng_CV工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值