GIT学习和使用

一、工作区和暂存区

在这里插入图片描述

工作区:我们直接编辑的地方,比如使idea打开文件直接操作
暂存区:数据暂时存放的地方,是工作区与版本库之间数据交流的纽带
版本库:存放已经提交的数据,push的时候就是将这区域中的数据push到远程仓库的。

git add xxx 该命令只能将文件从工作区提交到暂存区
git commit -m …只能将文件从暂存区提交到版本库中

二、Git基本操作

文件夹中有一个隐藏的.gti文件夹,这个文件夹就是一个git仓库,git仓库不可嵌套,即有隐藏文件.git的文件夹不可以嵌套

1.创建版本库

创建或指定一个文件夹

2.初始化版本库

git init 在指定的文件夹中执行初始化命令,是该文件夹成为一个git仓库

3.添加文件到版本库中

就是使用git把文件管理起来,通过git add命令,在通过git commit命令提交到版本库;可以多次add后统一commit

git add xxxfile
git commit -m “说明”

4.status和diff命令

命令介绍
status查看当前库到状态
diff查看文件的变化的【工作区和版本库】

5.版本回退

log命令

git log 查看文件的历史版本,该命令显示的日志会很多
git log --pretty=oneline 单行显示日志

版本回退

git reset --hard HEAD^ 回退到上一个版本
git reset --hard 版本号 回退到指定的版本

该方式也可以在返回退到最新版本,只不过git log日志中是没有最新日志版本号记录的。所以可以提前保存下来,也可以通过如下命令查看所有文件日志

git reflog xxxfile 可以查看所有版本日志,log只展示回退版本之前的日志

三、撤销管理

1.还未提交到暂存区

git restore filename 可以通过如下命令实现回退(git checkout好像不行)

2.提交到了暂存区

git restore --staged filename 使用该命令将文件回退到工作区

3.提交到了版本库

git reset --hard HEAD^ 直接回退到上个版本
git reset --hard 版本号 回退到指定版本号

四、删除管理

操作和添加文件差不多,也是通过回退来实现

GitHub远程仓库

1.创建SSH Key

ssh-keygen -t ras -C “mymail@163.com”
在用户根目录下生成了id_rsa和id_rsa.pub两个文件

2.登录GitHub

配置SSH:我的->setting->SSH and GPG keys

3.创建远程仓库

1、通过create new repository创建仓库,仓库名称,描述信息,共开等…

4.关联远程仓库

1、在本地创建一个仓库和远程仓库关联
2、直接在本地已经存在的仓库中关联远程仓库

git remote add origin git@gtihub.com:ffdd

3、导入其他仓库

5.推送文件到远程仓库

git push -u origin master

6.克隆远程仓库

一个文件夹中有一个隐藏的.git文件,这个文件夹就是一个仓库,注意不要在文件夹中继续创建仓库

git clone git@github.com:xxx

五、分支管理

1.创建分支

git branch 查看分支

git branch 分支名称 创建分支
git checkout 分支名称 切换分支

git checkout -b 分支名称 创建分支并直接切换到分支

2.分支操作

分支上的相关操作是独立的,其他分支是看不到的。其他分支需要看到,则需要合并分支;切换到要合并的分支上,然后merge

git merge 分支名称
git push --set-upstream origin 分支名称 本地分支推送到远程仓库

3.分支删除

git branch -d 分支名称 删除本地分支
git push origin --delete 分支名称 删除远程分支

4.解决冲突

冲突文件说明:

<<<<<<HEAD
xxxxxx    这是前一个分支内容
=======
bbbbb     这是合进来的分支内容
>>>>> 分支名称

等号上下两处就是冲突的内容,冲突后直接编辑冲突的文件即可;

5.分支操作和查看

在这里插入图片描述
master分支:该是主分支,不在上面进行开发,分支内容非常稳定
dev分支:一个新需求的开发分支,来自master,由项目经理管理
michoel分支:子需求1分支,每天开发后提交到本分支,由项目经理并合并到dev分支中
bob分支:子需求2分支,来自dev分支,每天开发完提交到本分之,由项目经理合并到dev分支

查看分支日志:

git log --graph --pretty=oneline

六、Bug分支

针对突发任务,可以保存当前分支的工作状态,去处理临时任务,处理完成后回来继续工作;

git stash 存储当前状态
git stash list 查看存储的状态列表
git stash apply 恢复之前的状态

七、多人协作

1.分支推送

git pull 拉取分支最新代码
git push 代码推送到远程分支
git push origin 分支名称 推动本地分支到远程仓库,如果远程仓库分支不存在则会自动创建这个分支

本地创建分支,然后和远程指定分支关联

git checkout -b '分支名称‘ 本地创建并切换到改分支上
git branch --set-upstream-to==origin/本地分名称 远程分支名称

2.冲突解决

git pull 拉取代码,这时候肯能会冲突,然后解决冲突,和之前解决冲突方式一样
git push origin 分支名称 推送代码到远程分支

八、标签管理

对于一些里程碑式的代码版本,需要记下来,此时可以使用标签,来给项目打标签;同时标签也可以

1.创建标签

git tag -a 标签名 -m “说明” 给当前代码打标签
git tag 查看本地标签列表
git log --pretty=oneline --abbrev-commit 查看提交日志和对应的标签
git tag 标签 版本号 给指定版本号代码打标签

2.查看指定标签代码

git reset --hard 标签 根据标签查看对应版本代码

3.标签远程仓库推送和获取

git push origin --tags 将本地标签全部推送到远程仓库
git pull 拉取远程分支的tags

4.标签删除

git tag -d 标签名
git push origin :refs/tags/标签名

这时候其他本地分支的标签不可以删除,需要手动删除

九、常用命令总结

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

十一、远程仓库ssh与http协议互转

git remote rm origin 删除远程仓库原有协议链接
git remote add origin http://xxxxx或者ssh的链接地址

然后pull代码或者push代码,这时候可能需要用命或密码; 用户名在git的log中查看,密码就是你访问内网的密码;

本地分枝没有关联远程分枝会报如下错误:
There is no tracking information for the current branch.
解决方式:与远程分枝建立关联关系
git branch --set-upstream-to=origin/远程分支的名字 本地分支的名字

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值