Git基本使用

go中

 git clone https://git.....
 go mod tidy     加载库
 git branch        分支
 git status         查看状态 on branch master
 git checkout -b feature/add-node-disk-io      创建分支
 git add .
 git commit -m “…”
 git remote add upstream https://git.woa.com/tke/eks/monitor-agent.git     添加上游库
 git remote -v
 git push  origin feature/aaa:feature/aaa   提交分支(push)(添加功能分支名):(feature/aaa)
 git push  origin fix/aaa:fix/aaa   提交分支(push)(修复功能分支名):(fix/aaa)

 

git pull origin master --allow-unrelated-histories --把远程仓库中的内容 pull 到本地工作目录
git push -u origin master -f --在 pull 下来的项目中做修改,通过以上命令 push 到远程仓库了

一、 Git的基本使用

1 安装及初始化本地仓库

安装完成后打开Git Bash窗口
输入git --version 输出版本信息证明安装成功
填写用户名和邮箱作为一个标识
git config --global user.name “用户名”
git config --global user.email “邮箱地址”

在本地创建一个目录作为git仓库,并通过git init命令进行初始化,初始化成功后会在当前目录生成一个.git目录文件,不要删除及修改。

2 Git存储流程

代码工作区—>执行git add —>暂存区(临时存储)—>执行git commit—>本地库(历史版本)

工作区、暂存区和本地仓库,逻辑上是本地计算机。当我们新建一个文件时,文件位于工作区,处于已修改(modified)状态,表明文件已进行了修改,但还没有提交保存;通过命令 git add 将其添加到暂存区,文件是已暂存(staged)状态,表示把已修改的文件放到下次提交时要保存的清单中;通过命令 git commit将文件放入本地仓库,文件为已提交(commited)状态,表示该文件已经被安全地保存在本地数据库中,到这一步可以说是成功生成了一个新的版本。
远程仓库用来将本地仓库上传到网络,实现备份、共享和合作。

3 Git 常用命令

3.1 添加文件

git add 文件名
将文件添加到暂存区

3.2 提交文件

git commit -m “提交注释”
将文件提交到本地仓库

3.3 查看状态

git status
查看目录中是否还有文件未提交

3.4 查看文件修改对比差异

git diff
比较文件差异
git diff [文件名]
将工作区中的文件和暂存区进行比较

3.5 查看日志

git log
查看历史记录,显示从最近到最远的日志
在这里插入图片描述

3.6 简化显示

git log --pretty=oneline

3.7 查看简短日志

git reflog
查看历史记录,并以简短信息显示
在这里插入图片描述

HEAD@{移动到当前版本需要多少步}
删除文件

3.8 前进回退

git reset --hard [局部版本号]
前进后退版本

3.9 删除文件

rm [文件名]
3.9.1 彻底删除
将文件添加到缓存区中,然后提交。

3.10 恢复文件

对于删除文件也可使用reset命令恢复
如果删除文件后未提交可以使用git checkout – [文件名]恢复

3.11 分支操作

在版本回退那里,已经知道每次提交,git都会把他们串成一条时间线,这条时间线就是一个分支。截止到目前,只有一条时间线,在git里,这个分支叫主分支,即master。切换分支即可以理解为切换时间线。
在版本控制过程中,使用多条线同时推进多个任务。每条线成为一个分支。
例如:
在这里插入图片描述
3.11.1 创建分支
git branch [分支名]
3.11.2 查看分支
git branch –v
3.11.3 切换分支
git checkout [分支名]
3.11.4 合并分支(merge/rebase)
第一步:切换到接受合并的分支
git checkout [接受合并的分支名]
第二步:执行merge命令
git merge [待合并的分支名]
3.11.5 删除分支命令
git branch –d [分支名]

Git常用命令集

mkdir: XX(创建一个空目录XX指目录名)
pwd: 显示当前目录的路径
git init 把当前的目录变成可以管理的git仓库,生成隐藏的.git文件。
git add XX 把XX文件添加到暂存区。
git commit -m “XX” 提交文件 -m后面的是注释
git status 查看仓库状态
git diff XX 查看XX文件修改了哪些内容
git log 查看历史记录
git reset -hard HEAD^ 或者git reset -hard HEAD~ 回退到上一个版本 (如果想回退到100个版本,使用git reset -hard HEAD~100)
cat XX 查看XX文件内容
git reflog 查看历史记录的版本号id
git checkout --XX 把XX文件在工作区的修改全部撤销
git rm XX 删除XX文件
git remote add origin https://gitee.com/oldlu_wk/gittest.git关联一个远程库
git push -u (第一次提交要用-u以后不需要)origin master把当前master分支推送到远程库
git clone https://gitee.com/oldlu_wk/gittest.git从远程库中克隆
git checkout -b dev 创建dev分支 并切换到dev分支上
git branch 查看当前所有分支
git checkout master 切换回master分支
git merge dev 在当前分支上合并dev分支
git branch -d dev 删除dev分支
git branch name 创建分支
git stash 把当前的工作隐藏起来等以后恢复现场后继续工作
git stash list 查看所有被隐藏的文件列表
git stash apply 恢复被隐藏的文件,但是内容不删除
git stash drop删除文件
git stash pop 恢复文件的同时也删除文件
git remote 查看远程库的信息
git remote -v 查看远程库的详细信息
git push origin master Git会把master分支推送到远程库对应的远程分支上

二、 远程仓库操作(以码云为例,github同理)

基本操作

1、创建SSH Key

因为数据保存在远程服务器,服务器需要对你的身份进行识别,SSH key 可以让你的电脑和码云之间建立安全的加密连接。
1、 运行命令 ssh-keygen -t rsa -C “你的邮箱”,会有三次提示输入,直接回车即可。
2、 在用户目录下生成 .ssh目录,里面有一个 id_rsa.pub文件,保存的就是公钥。
登录码云,在SSH公钥文本框里粘贴 id_rsa.pub文件的内容
3、 验证秘钥是否添加成功
执行命令 ssh -T git@git.oschina.net
4 、 Git使用SSH连接第一次验证服务器的key时,需要你进行确认,此时输入yes回车即可。
再次执行 ssh -T git@git.oschina.net
在这里插入图片描述

2、 克隆远程仓库到本地

2.1 复制远程仓库地址
2.2 在bash窗口中执行 git clone + 复制的地址,回车
在这里插入图片描述
2.3 进入克隆目录,添加新文件
2.4 执行 git add . 将工作区所有内容上传到暂存区
2.5 执行git commit -m ‘本次提交的注释’ 提交到本地仓库
2.6 执行git push [别名] [分支名] 其中别名和分支名可省略。将本地仓库所有内容上传到远程仓库码云 ,码云刷新可看到最新内容
在这里插入图片描述
2.7 git pull 拉取远程库内容

远程库扩展操作

1、 创建远程库地址别名

git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址] 增加远程地址
git remote remove [别名] 删除远程地址

2、 解决冲突

问题:文件add、commit、push后,git提示冲突,然后pull文件,再打开文件后提示冲突,然后手动解决,重新add、commit、push。
要点
如果不是基于 GitHub 远程库的最新版所做的修改,不能推送,必须先拉
取。
拉取下来后如果进入冲突状态,则修改->add->commit即可。

3、 远程仓库邀请成员

设置->数据管理->私有仓库成员->选中仓库->邀请成员

三、IDEA中操作Git

1 使用IDEA提交代码

1.1 在idea中配置git路径
在这里插入图片描述
1.2 在远程仓库上创建仓库
创建本地仓库
在这里插入图片描述
1.3 将项目添加到缓存
在这里插入图片描述
1.4 提交项目
在这里插入图片描述
1.5 提交并上传
在这里插入图片描述
1.6 添加远程仓库地址
在这里插入图片描述
1.7 查看上传状态
在这里插入图片描述
注意:如果上传时出现Push rejected: Push to origin/master was rejected
解决办法:
1.选择你要上传代码的文件夹,鼠标右键git Bash Here
2.输入下面两行命令
git pull origin master --allow-unrelated-histories --把远程仓库中的内容 pull 到本地工作目录
git push -u origin master -f --在 pull 下来的项目中做修改,通过以上命令 push 到远程仓库了

2 在idea中用git获取新项目代码

2.1 第一步
在这里插入图片描述
2.2 第二步 :克隆远程仓库
在这里插入图片描述

3 解决冲突

3.1 产生冲突的原因

冲突产生的根本原因是:两个人修改了同一个文件的同一块区域,在前者已经提交代码到远程仓库的情况下,后者修改代码前没有使用pull命令更新代码,而是修改完代码后再使用pull命令,这时就会产生冲突。这也是最常见的冲突,下面介绍解决冲突的办法也主要针对这种冲突。
在这里插入图片描述

3.2 预防冲突

在修改代码前,使用pull命令更新代码,能够保证在开始修改代码前本地的代码与远程仓库中的版本一致,这样能够大大降低冲突发生的概率。

3.3 解决冲突
协商手动解决

冲突产生的表现:后面状态为 MERGING
dell@DESKTOP-VSDN0Q2 MINGW64 /d/Git-Space/SH0720(master|MERGING)

步骤:

1)编辑有冲突的文件,删除特殊符号,决定要使用的内容
特殊符号:<<<<<<< HEAD 当前分支的代码 ======= 合并过来的代码 >>>>>>> hot-fix
2)添加到暂存区
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master|MERGING)
$ git add hello.txt
3)执行提交(注意:此时使用 git commit 命令时不能带文件名)
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master|MERGING)
$ git commit -m “merge hot-fix”
[master 69ff88d] merge hot-fix
–发现后面 MERGING 消失,变为正常
Layne@LAPTOP-Layne MINGW64 /d/Git-Space/SH0720 (master)
$

在这里插入图片描述

四、Git简介

Git概念

Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的项目。

本质:

项目开发的管理工具,使用Git可以方便的完成团队的协作开发。以及项目开发过程中的资源管理。

分布式的概念:

我们目前开发一个功能,是在一个项目中将功能进行实现。然后将开发好的功能部署到tomcat服务器中,对外进行服务。但是呢在实际的应用场景中,有很多的用户都会访问我们的功能,造成我们的服务器压力过大。于是我们对服务器进行水平扩容。搭建很多的服务器,每个服务器都在运行我们的功能。比如:查询账户余额的功能,如果我们此功能只部署在一个服务器中运行,有一亿个用户来访问,造成服务器崩溃。我们搭建N个服务器,同时运行我们的查询功能,用户请求任意服务器都可以处理其请求。但是呢,我们还需要一个特殊的服务器,该服务器不对外进行功能的服务器,而是根据用户的请求,将用户的请求分发到对应的空闲的服务器来处理,避免单个服务器的拥堵。但是我们的一个系统是由很多的
功能组成,根据上面的理论,我们将系统中的某个功能搭建了多台服务器提供服务器,那么
系统的其他功能怎么办呢?因为其他的功能不是高并发的,无需水平扩容,将系统拆分为
多个子功能,每个功能都可以独立的运行在服务器中,并提供服务器。相较于我们以前
将一个系统中的所有功能部署到一个服务器,变为将系统功能拆分后,部署到N个服务器中对外提供访问,并且可以根据高并发的需求,都某个功能的服务器进行水平扩容。此种
方式就是分布式。
总结:
分布式:就是将由一个服务器运行的资源,拆分到多个服务器中运行。

其他常见的版本控制工具
Subversion(简称SVN)、CVS等

版本控制工具的作用

协同修改 :
多人并行不悖的修改服务器端的同一个文件。
数据备份:
不仅保存目录和文件的当前状态,还能够保存每一个提交过的历史状态。
版本管理 :
在保存每一个版本的文件信息的时候要做到不保存重复数据,以节约存储空间,提高运行效率。这方面 SVN 采用的是增量式管理的方式,而 Git 采取了文件系统快照的方式。
权限控制 :
对团队中参与开发的人员进行权限控制。
对团队外开发者贡献的代码进行审核——Git 独有。
历史记录 :
查看修改人、修改时间、修改内容、日志信息。
将本地文件恢复到某一个历史状态。
分支管理 :
允许开发团队在工作过程中多条生产线同时推进任务,进一步提高效率。

集中式版本控制工具及分布式版本控制工具示意图

集中式版本控制工具示意图
在这里插入图片描述

分布式版本控制工具工作示 意图
在这里插入图片描述

Git 的优势

大部分操作在本地完成,不需要联网
尽可能添加数据而不是删除或修改数据
分支操作非常快捷流畅
与 Linux 命令全面兼容

7 Git 和代码托管中心

代码托管中心的任务:维护远程库
局域网环境下
  GitLab 服务器
外网环境下
GitHub
码云(gitee)

图片

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

git reset

在这里插入图片描述

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

AloneDrifters

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

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

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

打赏作者

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

抵扣说明:

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

余额充值