git基础

目录

git介绍

git安装

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

配置全局用户名和邮箱

配置SSH

​编辑

git和代码托管中心

码云的使用

创建仓库

创建组织

git工作机制

git常用命令

初始化本地库:git init

查看本地库状态:git status

添加工作区到暂存区:git add

提交暂存区到本地库:git commit -m '备注提交内容'

查看日志信息:git log

版本回退:git reset

撤销修改

克隆远程仓库:git clone

同步远程仓库到本地:git pull

推送到远程仓库:git push

工作常用步骤:

分支管理

什么是分支

分支的好处

分支的操作

查看分支

创建本地分支:git checkout

合并分支到当前分支:git merge

删除分支:git branch -d

本地分支和远程分支第一次关联:git push origin xxx分支名字

 合并远程分支(master分支之下):

产生冲突

冲突产生的表现:

冲突产生的原因:

解决冲突:

过程:


git介绍

Git 是一种分布式版本控制工具, 客户端提取的不是最新版本的文件快照, 而是把代码仓库完整地镜像下来 (本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份 。

git安装

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

  • Git GUI:Git提供的图形界面工具
  • Git Bash:Git提供的命令行工具

配置全局用户名和邮箱

git config --global user.name "Your Name"
git config --global user.email "email@example.com"
git config --global user.name "fyy"
git config --global user.email "fengyueyue1129@qq.com"

配置SSH

# 生成sshkey
ssh-keygen -t rsa 
#执行完毕上面命令之后,按几次回车
#查看公钥的内容,复制到git的sshkey位置
cat ~/.ssh/id_rsa.pub

git和代码托管中心

  • 代码托管中心是基于网络服务器的远程代码仓库, 一般我们简单称为远程库。

  • 局域网
    • GitLab:自己搭建远程库
    • gogs: Gogs 是一款极易搭建的自助 Git 服务
  • 互联网
    • GitHub (外网),可能无法访问
    • Gitee 码云(国内网站)

 比较出名的代码托管中心: GitHub 和 码云

码云的使用

创建仓库

创建组织

git工作机制

  • 工作区:存放代码的地方
  • 暂存区:临时存储,将工作区的代码让git知道,通过git add将代码放到暂存区
  • 本地库:将暂存区的代码提交到本地库,就会生成对应的历史版本,这个代码就无法删除
  • 远程库:将本地库的代码推送到远程库

git常用命令

初始化本地库:git init

创建本地仓库:

查看本地库状态:git status

添加工作区到暂存区:git add

git add .  #当前文件夹以及子文件夹(所有)
git add fileName  #某个文件

提交暂存区到本地库:git commit -m '备注提交内容'

查看日志信息:git log

作用:查看提交记录

git log #日志
git log --pretty=oneline   #美化输出,行格式显示
git log --pretty=oneline  --abbrev-commit  #简化版本号 行格式显示
#历史命令日志:版本相关,如果再版本回滚时误操作了,可以通过这个地方来找历史的版本号和命令进行恢复
git reflog 

版本回退:git reset

git reset --hard  HEAD    #放弃当前所有修改,回退到当前版本
git reset --hard  HEAD^   #回退到上一个版本

撤销修改

git checkout xxx  #撤销某个文件修改,这里的数据还没有提交到暂存区
git  checkout .   #撤销当前文件夹内所有修改
git reset --hard  HEAD    #放弃暂存区中所有的修改和新增

克隆远程仓库:git clone

git clone xxxx地址  (不加分支默认master)
#默认拉取master分支代码
git clone git@gitee.com:liuzhenyu666/test0130.git 
#克隆远程仓库及其分支(了解)
git clone -b xxxxx分支    xxxx地址  (不加分支默认master)
#拉取dev分支代码
git clone  -b dev git@gitee.com:liuzhenyu666/test0130.git

同步远程仓库到本地:git pull

推送到远程仓库:git push

工作常用步骤:

git status #查看当前仓库状态 
git add  . #添加到暂存区
git commit -m 'xxxx'  #添加到本地仓库
git pull # 同步远程仓库到本地,检查远程仓库是否比本地版本更高一些
git push  #推送到远程仓库

分支管理

什么是分支

在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。对于初学者而言, 分支可以简单理解为副本,一个分支就是一个单独的副本。(分支底层其实也是指针的引用)

分支的好处

同时并行推进多个功能开发,提高开发效率。

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

分支的操作

查看分支

git branch  #查看本地分支
git branch  -a #查看所有分支

创建本地分支:git checkout

git checkout -b xxx分支名字   #创建并切分支
git add . 
git commit -m ''
git pull
git push origin xxx分支名字

合并分支到当前分支:git merge

git checkout master #切换到master分支
git merge xxx分支名字  #合并分支

删除分支:git branch -d

git branch -d  # 删除已合并的分支,有未合并代码不允许删除
git branch -D # 强制删除有未合并代码的分支
git push origin --delete dev_new #删除远程分支

本地分支和远程分支第一次关联:git push origin xxx分支名字

 合并远程分支(master分支之下):

git checkout master
git pull origin xxx分支名字 #远程拉取XX分支
git merge origin /xxx分支名字
git push

上传分支+合并分支:

产生冲突

冲突产生的表现:

后面状态为MERGING

冲突产生的原因:

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

解决冲突:

  • CONFLICT => 表明该文件有冲突,被至少2人修改。
  • 查看日志,去线下和对应修改人员沟通,确定如何修改。
  • 切忌在协作开发时,随意修改或者删除他人代码

过程:

现在我们在新建一个分支,dev1

git checkout -b dev1

查看

$ git branch
  dev
* dev1
  master

我们在div1分支下,对文件里边的内容进行修改

然后上传

git add .
git commit -m"div1进行提交"
git checkout master
git merge dev1
git push

上传成功之后,我们在切换到dev分支之下,我们可以看到 div 分支之下的文件当中并没有我们在dev分支之下的文件当中写的内容,现在我们重写一个新的内容

同样进行上传,但是当我们在合并分支的时候却出现

打开我们的文件

这说明我们产生了冲突,我们必须手动解决冲突,只需要我们保留我们想要的结果

更改完错误以后需要我们commit一下,然后上传

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值