Git基础操作

目录

git用来干什么?

安装

仓库管理

日志查看

撤销和回退

分支管理

解决冲突


git用来干什么?

不知道你学习的时候有没有遇到这样的情况:

比如说,我们要做某一个程序,你手中有一份办成品,但现在需要在上面进行修改。

1、你怕修改之后万一出现什么错误,把原来的文件也弄坏了;

2、每当我们完成一个新的需求点之后,又来了对这个需求更好的实现方式。为了能够有及时发布我们不得不对原来的代码进行保存

于是你不得不复制出一个又一个副本,随着需求点越来对多,于是每次都是复制粘贴副本,产出的文件就越来越多,文件多不是问题,问题是:随着版本数量的增多,你还记得这些版本各自都是修改了什么吗?

为了能够更方便我们管理这些不同版本的文件,于是有了版本控制器。

安装

官网下载地址/ 群里安装包

https://git-scm.com/downloads

安装步骤

图形化安装

配置全局用户名和邮箱

git config --global user.name "Your Name"

git config --global user.email "email@example.com"

配置SSH

# 生成sshkey ssh-keygen -t rsa

#执行完毕上面命令之后,按几次回车

#查看公钥的内容,复制到git的sshkey位置

cat ~/.ssh/id_rsa.pub

创建git仓库

git init

状态模型

  • 工作区(workplace)
  • 暂存区(index)
  • 本地仓库(local repository)
  • 远程仓库(remote repository)

仓库管理

工作区(workpace->暂存区(index)

git add . #当前文件夹以及子文件夹

git add fileName #某个文件

暂存区(index)->本地仓库(local repository)

git commit -m '备注提交内容'

新建远程仓库

以码云为列进行安装-----需要配置公钥

克隆远程仓库

git clone xxxx地址 (不加分支默认master)

#默认拉取master分支代码

git clone  “git地址”

克隆远程仓库其他分支(了解内容)

git clone -b xxxxx分支 xxxx地址 (不加分支默认master)

#拉取dev分支代码

git clone -b dev “git地址”

工作常用步骤

git status #查看当前仓库状态

git add . #添加到暂存区

git commit -m 'xxxx' #添加到本地仓库

git pull # 同步远程仓库到本地,检查远程仓库是否比本地版本更高一些

git push #推送到远程仓库

日志查看

提交日志

git log #日志

git log --pretty=oneline #美化输出,行格式显示

git log --pretty=oneline --abbrev-commit #简化版本号 行格式显示

历史命令日志

#版本相关,如果再版本回滚时误操作了,可以通过这

#个地方来找历史的版本号和命令进行恢复

git reflog

撤销和回退

撤销修改

git checkout xxx #撤销某个文件修改,这里的数据还没有提交到暂存区

git checkout . #撤销当前文件夹内所有修改

git reset --hard HEAD #放弃暂存区中所有的修改和新增

版本回退,慎用

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

git reset --hard HEAD^ #回退到上一个版本

分支管理

查看分支

git branch #查看本地分支

git branch -a #查看所有分支

创建分支

git checkout -b xxx分支名字 #创建并切分支

git branch xxx分支 #创建

git checkout xxx分支 #切分支

合并分支到当前分支

git checkout master #切换到master分支

git merge xxx分支名字 #合并分支

删除分支

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

解决冲突

  • 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一下,然后上传

造成冲突的原图:

在不同分支之下,更改了相同的文件


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值