当前位置: 首页 > news >正文

Git常用的命令【提交与回退】

git分布式版本控制系统 (SVN集中式版本控制系统)之间的对比

git有本地仓库和远程仓库,不同的开发人员可以分别提交自己的本地仓库并维护代码的版本控制。

然后多个人员在本地仓库协作的代码,可以提交到远程仓库中做整合。

git本地客户端安装配置

windows

远程仓库的git地址,作为我们SSH的通信

首先需要先下载git客户端,点击git bash,创建好目录

git bash和git hub 之间是通过ssh加密传输的,因此需要配置公钥,打开git bash,生成公钥私钥:ssh-keygen -t rsa -C "xxxxxxxxx@qq.com",在git hub上进行公钥配置。

git bash和github进行ssh连接,如果连接不上,可能就是不让用22端口(默认),可以使用443端口。

$ssh -T -p 443 git@ssh.github.com #github备用的SSH地址,443端口
$nano ~/.ssh/config #编辑SSH配置文件
#配置文件中添加以下内容
Host github.comHostname ssh.github.comPort 443
$ssh -T git@github.com #保存文件,重新尝试连接

git客户端和github连接成功示意图:

配置邮箱和用户名:以后再github提交的任何代码文件,都会附带你的邮箱和用户名信息

ubuntu

首先Linux需要安装open-SSH服务和git,生成公私钥,把公钥配置在github上(具体可以查看其他博客,这里不做讲解)

$ sudo apt-get install open-SSH git

总结

Git常用指令

将远程仓库的代码拉取到本地

$ git clone [github的SSH地址]

git客户端进入项目中,git log可以查看提交人和提交日期

git remote得到的是origin,是我们远程仓库的名称,可以在隐藏文件.git 的配置文件更改

$ git remote 

可以得到代码版本的分支,也就是你工作在哪个分支上

$ git branch -r

把工作区的代码改动,提交到暂存区。

$ git add main.cpp #使用 git status 去查看状态

把暂存区的代码提交到本地仓库的分支上

$ git commit -m "创建了main.cpp,书写了初始的代码"

把本地仓库的代码提交到远程仓库

$ git push origin main # 把我本地仓库主分支的代码 提交到 远程仓库origin的主分支上

另外一个用户此时可以使用pull命令,将更新的代码版本拉到自己的本地仓库

$ git pull

最后通过git log 可以查找到谁更新的哪块代码,有问题就找作者

此外HEAD指针指向了最新一次的代码版本。

各个阶段的回退操作

工作区-》暂存区-》本地仓库-》远程仓库

工作区的回退:

$ git checkout -- main.cpp #在工作区修改的代码进行回退一开始的状态 或者 对应的文件回退

暂存区的回退:

$ git reset HEAD <filename> #可以取消相应暂存区中文件的修改 或 所有

本地仓库的回退:

$ git reset --hard <commit的id号> #commit的id号在git log下查看

远程仓库的回退:

注意:由于你本地仓库的代码有问题且提交到远程仓库了,想要回退时,别人更新过远程仓库了,可能你回退之后,把别人更新的内容也回退没了。

$ git push -f origin main #强制用本地仓库的代码把远程仓库的代码更新
http://www.lryc.cn/news/500165.html

相关文章:

  • 详解:HTTP/HTTPS协议
  • 0.96寸OLED---STM32
  • 保姆级教学 uniapp绘制二维码海报并保存至相册,真机正常展示图片二维码
  • 常用Vim操作
  • 【C#】NET 9中LINQ的新特性-CountBy
  • Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】
  • 【数据结构】文件和外部排序
  • 新手学习:网页前端、后端、服务器Tomcat和数据库的基本介绍
  • 机器学习贝叶斯模型原理
  • 【C++】实现100以内素数的求解
  • Python 浏览器自动化新利器:DrissionPage,让网页操作更简单!
  • Rust学习笔记_13——枚举
  • Postgresql 格式转换笔记整理
  • AI开发:卷积神经网络CNN原理初识,简易例程 - 机器学习
  • 详细介绍vue的递归组件(重要)
  • 【单片机基础知识】基础知识(CortexM系列、STM32系统框架、存储器映射、寄存器映射)
  • yolov5导出命令
  • RabbitMQ的常用术语介绍
  • Docker魔法:用docker run -p轻松开通容器服务大门
  • 【后端面试总结】Redis过期删除策略
  • 数字图像处理(15):图像平移
  • 高级java每日一道面试题-2024年12月08日-JVM篇-什么是类加载器?
  • JAVA子类的无参构造器中第一行的super
  • mysql程序介绍,选项介绍(常用选项,指定选项的方式,特性),命令介绍(查看,部分命令),从sql文件执行sql语句的两种方法
  • Unity教程(十九)战斗系统 受击反馈
  • lanqiaoOJ 3744:小蓝的智慧拼图购物 ← pair+优先队列
  • Spring Boot教程之二十一:文件处理
  • 【Linux】Linux的基本常识+指令
  • Rocky Linux 9.3系统搭建Slurm环境【笔记】
  • 原生微信小程序使用原子化tailwindcss