git 学习


title: git学习
date: 2019-09-29
tags:

  • git
    categories:
  • git

一、介绍与安装

1.1 介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。

Git是 Linus Torvalds为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。

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

1.2 安装

下载git:https://git-scm.com/download

1.3 git的初始设置

# 安装后,打开cmd,自报家门
# 如下学习会在提价代码时使用,记录每次是谁提交的,可通过‘给git log’查看
# 执行
git config --global user.name "Your Name"  # 用户名
git config --global user.email "1429855087@qq.com"  # 邮箱
#查看信息
git config -l
# 测试
git version

1.4 架构

版本库:工作区中有一个隐藏目录.git,这个目录不属于工作区,而是git的版本库,是git管理的所有内容

暂存区:版本库中包含一个临时区域,保存下一步要提交的文件。

分支:版本库中包含若干分支,提交的文件存储在分支中。

二、本地仓库

对应的就是一个目录,这个目录中的所有文件被gt管理起来。

以后会将一个项目的根目录,作为仓库。

仓库中的每个文件的改动都由git跟踪

cmd中执行命令:git init

三、基本操作

3.1 查看仓库状态

执行git status可以查看仓库状态

3.2 暂存文件

执行 git add . 将工作区中的文件全部暂入缓存区

3.3 提交文件

执行 git commit -m “这里写需要提交的描述信息” 将缓存区的文件存入分支,形成一个版本。注:-m 意味massage, 描述本次提交。

四、远程仓库

当多人协同开发时,每人都在自己的本地仓库维护版本。

但很重要的一点是,多人之间需要共享代码、合并代码,此时就需要一个远程仓库

4.1 远程仓库的工作模式

4.2 远程仓库选型

有很多git服务器库可以选择,我们可以在上面构建自己的远程仓库,比如git hub(https://github.com/),码云(https://gitee.com/)。

许多公司也会构建自己的git服务器

4.3基本操作

4.3 .1 注册git服务器账号

4.3.2 建立远程仓库

4.3.3 关联远程仓库

关联远程仓库 git remote add origin https://github.com/Maskvvv/first_git.git

查看地址信息 git remote -v

4.3.4 推送文件至远程仓库

将本地仓库中已经 commit的内容push到远程仓库,以共享自己的代码。

将本地仓库master分支push到远程 git push origin master,上传时会提示输入 git hub 的账号密码。

4.3.5 克隆远程仓库

克隆远程仓库 git clone https://github.com/Maskvvv/first_git.git

4.3.6 代码共享

多人协同开发时,写好代码的 git push上传到远程仓库;需要代码的 git pull拉取代码即可。

上传:

  • git add
  • git commit -m "new file hello.txt"
  • git push origin master

拉取:

  • git pull origin master

4.3.7 命令汇总
命令介绍
git remote add 标识名(origin)远程仓库地址关联到远程仓库
git push 标识名(origin) 远程仓库地址将本地仓库上传只远程仓库
git pull 标识名(origin) 远程仓库地址从远程仓库下载到本地仓库
git clone 远程仓库地址将远程仓库复制到本地,并自动形成一个本地仓库

五、分支

5.1 分支的简介

分支,是一个个版本最终存储的位置。

分支,就是一条时间线,每次 git commit形成一个个版本,一个个版本依次存储在分支的一个个提交点上

分支由多个提交点组成,分支上会有一个指针,默认总是指向最新的提交点

5.2 分支的基本操作

5.2.1 查看分支

查看当前仓库分支 git branch

仓库默认只有 master 分支

执行 git commit 时,默认实在master分支上保存版本

每个仓库默认只有master分支
5.2.2 创建分支

在商业项目开发过程中,我们不会轻易的在 master分支上做操作

我们会通过git branch 分支名新建一个开发用的分支,在此分支上做版本的记录

代码确实没有问题时,才会将开发分支上成熟的代码版本添加到 master分支

既保证开发过程中,可以及时记录版本,有保证 master分支上每个提交点都是稳健版本。

通过git branch 分支名新建分支
5.2.3 切换分支

默认情况下,当前使用的分支是 master分支

可以通过git checkout dev 切换到dev分支,则后续的 git commit便会在dev分支上新建版本(提交点

通过git checkout dev 切换到dev分支

5.3 新建分支的细节

5.3.1 新分支初始内容

每个分支都有一个指针,新建一个分支,首先是新建一个指针

而且新分支的指针会和当前分支指向同一个提交点

新分支包含的提交点就是从第一个提交点到分支指针指向的提交点

5.3.2 多分支走向

在 maste分支和新分支,分别进行 git addgit commit

分支情况如下图:

在dev分支进行一次commit
在master和dev分支分别进行一次commit
5.3.3 分支提交日志

查看分支的提交日志,进而看到分支中提交点的详细情况。

查看简易的提交日志:git log --oneline

查看完整的提交日志:git log

查看完整的提交日志和简易分支图:git log --oneline --graph

查看提交日志

5.4 分支的合并

两个分支的内容合并

合并分支a的内容到分支b上(在分支b中执行):git merge 分支a

分支分为两种:快速合并三方合并

5.4.1 快速合并

如果分支A当前是完全基于分支B的修改而来,则B分支合并A分是移动指针即可

快速合并
5.4.2 三方合并

在不具备快速合并的条件下,会果用三方合并。

三方合并,将2和3的更改都累加在1上,形成新的提交点
通过 git log --oneline --graph 查看简易分支走势
5.4.3 合并冲突

两个分支进行合并,但它们含有对同一个文件的修改,则在合并时出现冲突,git无法决断该保留改文件哪个分支的修改,冲突后,git会将两个分支的内容都展示在文件中,并用 <<< ===>>> 进行分割

解决方法:

  1. 保留某一方的,删除另一方的
  2. 保留双方的
  3. 但无论如何,要记得删除 <<< == >>>>分割
  4. 本质是两人协商为冲突的内容,定制出合理的内容。
  5. 修改完后在进行一次commit

六、idea关联git

6.1 通过idea创建仓库


6.2 idea忽略文件.git

HELP.md
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/

### VS Code ###
.vscode/


6.3 通过idea进行commit

  1. 点击commit按钮
  2. 选择为跟踪文件和更新的文件
  3. 填写提交信息
  4. commit


6.4 通过idea push到远程仓库

6.5 分支的操作

新建分支

切换分支

6.6 从远程仓库克隆(clone)

image-20201003113559415

6.7 从远程仓库更新(pull)

6.8 冲突解决

待续…

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值