Git基本用法总结

设置全局用户名

git config --global user.name xxx #设置全局用户名

设置全局邮箱地址

git config --global user.email xxx@xxx.com     #设置全局邮箱地址

查看所有的 Git 配置,包括用户信息

git config --list  #查看所有的 Git 配置,包括用户信息
git init    #将当前目录配置成git仓库,信息记录在隐藏的.git文件夹中git add XX  #将XX文件添加到暂存区
git add .   #将所有待加入暂存区的文件加入暂存区

git restore 命令用于恢复文件到工作区或暂存区,其 --staged 选项和不带 --staged 的版本在功能上有显著区别。

git restore --staged

  • 作用--staged 选项用于将文件从暂存区(即缓存区)移除,但不影响工作区中的文件内容。

  • 场景:当你不小心将某些文件添加到了暂存区(例如使用 git add),但是你决定不再包括这些文件在下一次提交中。使用 git restore --staged 可以将这些文件从暂存区移除,同时保留工作区中的修改。

git add a.txt  # 将 a.txt 文件添加到暂存区
git restore --staged a.txt  # 从暂存区移除 a.txt 文件,但工作区中的 a.txt 仍然存在

git restore(不带 --staged

  • 作用:不带 --staged 的 git restore 用于将文件从工作区恢复到暂存区的状态,即撤销工作区的更改,使其与暂存区中的版本一致。

  • 场景:当你在工作区中对文件进行了更改,而你希望撤销这些更改,使文件恢复到暂存区中的状态(即最后一次添加或提交的状态)。这将覆盖工作区中的修改,但不会影响暂存区中的文件。

git add a.txt  # 将 a.txt 文件添加到暂存区
echo "some changes" >> a.txt  # 对 a.txt 文件进行修改
git restore a.txt  # 将 a.txt 文件恢复到暂存区中的版本,即撤销对 a.txt 的修改

将暂存区的内容提交到当前分支

git commit -m "给自己看的备注信息"

查看仓库状态

git status        #查看仓库状态

查看XX文件相对于暂存区修改了哪些内容

git diff XX   #查看XX文件相对于暂存区修改了哪些内容

查看当前分支的所有版本

git log      #查看当前分支的所有版本

查看HEAD指针的移动历史(包括被回滚的版本)

git reflog       #查看HEAD指针的移动历史(包括被回滚的版本)

将代码库回滚到上一个版本

git reset --hard HEAD^     #将代码库回滚到上一个版本

回滚

git reset --hard HEAD^^      #往上回滚两次,以此类推
git reset --hard HEAD~100    #往上回滚100个版本

回滚到某一特定版本

git reset --hard 版本号   #回滚到某一特定版本

生成密钥

ssh-keygen -t rsa       #生成后一路回车

获取密钥

cat ~/.ssh/id_rsa.pub   #公钥

验证是否认证成功(用Gitee)

ssh -T git@gitee.com

在本地告诉终端,远程仓库的地址(这里是将本地仓库与云端的新建的一个仓库连接,情景是:我先在本地开发一些项目,但是没有上传,然后我在Gitee中创建一个仓库叫git_test.git。我现在想要将本地的上传到云端,首先要建立连接,然后再上传)

git remote add origin git@gitee.com:someone/git_test.git #最后一个是地址,起一个名字叫origin

查看远程仓库

git remote

将本地文件夹推送到远程仓库

git push -u origin master

git push -u (第一次需要-u以后不需要):将当前分支推送到远程仓库

git push -u (第一次需要-u以后不需要)        #将当前分支推送到远程仓库

将云端的项目克隆到本地

git clone git@git.acwing.com:xxx/XXX.git

创建并切换到branch_name这个分支

git checkout -b branch_name   #创建并切换到branch_name这个分支

查看所有分支和当前所处分支

git branch        #查看所有分支和当前所处分支

切换到branch_name这个分支

git checkout branch_name      #切换到branch_name这个分支

将分支branch_name合并到当前分支上(注意,一般先切换到主分支,然后合并其他分支)

git merge branch_name     #将分支branch_name合并到当前分支上

删除分支(注意:要删除这个分支,首先要进其他分支。)

git branch -d branch_name     #删除本地仓库的branch_name分支

创建新分支

git branch branch_name    #创建新分支

设置本地的branch_name分支对应远程仓库的branch_name分支(注意,这里可以简单的git push 然后如果远程仓库没有这个分支,终端会报错,然后会打印一个命令,直接复制这个命令然后在终端执行就可以了)(这个是本地有这个分支,但是云端没有,需要将本地的分支上传到云端)

git push --set-upstream origin branch_name  # 设置本地的branch_name分支对应远程仓库的branch_name分支

删除远程仓库的branch_name分支

git push -d origin branch_name         #删除远程仓库的branch_name分支

将远程的branch_name1分支与本地的branch_name2分支对应(绑定在一起)(这个是云端已经有分支了,但是本地没有对应的,需要在本地先建立一个这个分支,然后将这个分支与云端的分支对应)

git branch --set-upstream-to=origin/branch_name1 branch_name2   #将远程的branch_name1分支与本地的branch_name2分支对应#然后拉下来,并且*******合并*****
git pull

将云端的分支拉下来也可以不用“先同步两个分支”,可以在云端的一个分支和本地一个直接合并(这里是,云端有一个本地没有的分支,branch_name 然后将云端的这个分支合并到本地当前分支)

git pull origin branch_name   #将远程仓库的branch_name分支与本地仓库的当前分支合并

`git clone` 和 `git pull` 是 Git 中两个不同的命令,它们的功能和用途如下:

1. `git clone`

- **功能**:将远程仓库的所有内容(包括文件、历史记录、分支等)复制到本地计算机。
- **使用场景**:通常在你第一次获取一个远程仓库时使用
 

  git clone https://gitee.com/username/repo.git

2. `git pull`

- **功能**:从远程仓库拉取最新的更改并合并到当前本地分支。相当于 `git fetch` 和 `git merge` 的组合。
- **使用场景**:在你已经有了本地仓库,并想更新本地分支以获取最新的更改时使用。

  git pull origin your-branch-name

总结

- **`git clone`**:用于首次获取整个仓库。
- **`git pull`**:用于更新已存在的本地仓库。

这两个命令在工作流程中起到不同的作用。希望这个解释对你有帮助!如果还有其他问题,随时问我!

注意:

当你使用 git clone 命令时,Git 会自动为你创建一个与远程仓库的连接,包括设置 origin 作为默认的远程仓库。不需要使用“git remote add origin git@git.acwing.com:xxx/XXX.git:将本地仓库关联到远程仓库”。

具体说明

  • git clone:这个命令会将远程仓库的内容克隆到你的本地计算机,并自动设置好远程仓库的地址(例如 origin),你不需要手动执行 git remote add origin ...

例子

当你执行以下命令:

git clone git@git.acwing.com:xxx/XXX.git

Git 会执行以下操作:

  1. 克隆远程仓库的所有内容。
  2. 创建一个名为 origin 的远程连接,指向你克隆的仓库。
  3. 默认会将当前分支设置为跟踪远程的主分支(通常是 main 或 master)。

总结

因此,使用 git clone 后,你就不需要再手动添加远程仓库的关联了。如果你想查看当前的远程仓库设置,可以使用:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146430.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

网络安全-webshell绕过,hash碰撞,webshell绕过原理

目录 一、题目 1.1 1.2 1.3 1.4 1.5 二、绕过动态检测引擎的一次尝试 三、一个比赛中的webshell 四、webshell绕过的原理以及哈希碰撞 五、JSP解释流程导致的绕过(QT比赛) 5.1环境 5.2例子 一、题目 这里我们通过几道题目来给大家讲解 1.…

Springboot3 + MyBatis-Plus + MySql + Uniapp 实现商品规格选择sku(附带自设计数据库,最新保姆级教程)

Springboot3 MyBatis-Plus MySql Uniapp 实现商品规格选择sku(附带自设计数据库,最新保姆级教程) 1、效果展示2、数据库设计2.1 商品表2.2 商品价格和规格中间表2.3 商品规格表 3、后端代码3.1 model3.2 vo3.3 mapper、server、serverImp3…

前端-javaScript:jquery补充

jquery绑定事件的方式 1.直接使用事件函数 &("div").click(function(){alert(1)}) 2.用统一的on函数绑定事件 on(事件类型,事件函数) $("div").on("click",function(){alert(2)}) 事件类型以参数的类型传递 --->可以同时绑…

go webapi上传文件 部属到linux

go厉害的地方,linux服务器上无需安装任务依赖就可以运行,大赞! 一、编译 #在Goland中cmd中执行 go env -w GOARCHamd64 go env -w GOOSlinux go build main.go # 切换回来 否则无法运行 go env -w GOOSwindows go run main.go 拷贝到linux服…

C++——关联式容器(4):set和map

在接触了诸如二叉搜索树、AVL树、红黑树的树形结构之后,我们对树的结构有了大致的了解,现在引入真正的关联式容器。 首先,先明确了关联式容器的概念。我们之前所接触到的如vector、list等容器,我们知道他们实际上都是线性的数据结…

使用pe工具制作ubuntu备份系统和还原系统

使用pe工具制作ubuntu备份系统和还原系统 备份系统还原系统修复磁盘教程修复引导教程为什么使用pe工具 1,因为我个人觉得这个工具实现起来比systemback软件操作起来报错少些,而且装的快,其他系统同理 实验准备 1,一个电脑,一个pe启动U盘 备份系统 插入U盘,开机进入pe系…

[JavaEE] UDP协议

目录 再谈端口号 一、端口号的划分 二、UDP协议 三、UDP的特点 再谈端口号 一、端口号的划分 0-1023:知名端口号,端口号固定,其中包括HTTP,FTP,SSH等广为使用的应用层协议。 1024-65535:操作系统动态分…

数据结构|二叉搜索树

🍬 mooridy-CSDN博客 🍬数据结构专栏(更新中) 目录 1. ⼆叉搜索树的概念 2. ⼆叉搜索树的性能分析 3.⼆叉搜索树key和key/value key搜索场景 key/value搜索场景 4. 二叉搜索树的代码实现 4.1 ⼆叉搜索树的插⼊ 4.2 ⼆叉搜索…

java----LinkedHashMap

.由键决定:有序、不重复、无索引 .这里的有序指的是保证存储和去除的元素顺序一致 原理:底层数据结构依然是哈希表,只是每个键值对元素又额外多了一个双链表的机制记录存储的顺序。 内容来自:集合进阶-09-LinkedHashMap_哔哩哔哩_bilibili

ChatGPT 在国内使用的方法

AI如今很强大,聊聊天、写论文、搞翻译、写代码、写文案、审合同等等,ChatGPT 真是无所不能~ 作为一款出色的大语言模型,ChatGPT 实现了人类般的对话交流,最主要是能根据上下文进行互动。 接下来,我将介绍 ChatGPT 在国…

hackmyvm靶场--zon

环境 攻击机kali 靶机 未知 主机探测 因为在同一个局域网内使用ARP协议探测存活主机 靶机为192.168.56.128 端口探测 常见的80和22端口 那么一定是寻找web漏洞拿shell了 后台扫描 后台扫描常用dirsearch和gobuster,有时候小字典可能不太行,可以尝试换个大点…

JAVA——数据流、序列化流

目录 一、DataOutputStream(数据输出流) 二、DataInputStream(数据输入流) 三、序列化流 1.1 ObjectOutputStream(对象字节输出流) 1.2 OutputStream(对象字节输入流) 四、补充 一、DataOutputStream(数据输出流) …

Flutter 获取手机连接的Wifi信息

测试版本 Flutter:3.7.6Dart:2.19.3 network_info_plus: 4.0.1 前言 我在做设备配网的时候,需要选择配网的WiFi。用下拉选择框展示WiFi列表。现在有个需求:默认展示的设备为手机连接的wifi。要实现这个需求只要能够获取到手机连接的wifi信息…

直接插入排序(C语言实现)

目录 1.直接插入排序介绍 2.实现思路 3.动图展示 4.代码实现 (升序) 单趟排序实现 单趟排序代码 直接插入排序函数 5.代码测试 6.时空复杂度分析 时间复杂度O(N^2) 空间复杂度O(1) 1.直接插入排序介绍 插入排序,又叫直接插入排序。…

(十七)MATLAB读取Gazebo话题信息

在仿真实验过程中,我们有时需要实时读取ROS及Gazebo话题,目前互联网上关于读取ROS的话题资料较多,读取Gazebo话题的参考资料较少,本文将以Ubuntu下固定翼仿真为例,展示如果通过MATLAB的插件GazeboPlugin读取Gazebo话题…

MoFA: 迈向AIOS

再一次向朋友们致以中秋的祝福! MoFA (Modular Framework for Agents)是一个独特的模块化AI智能体框架。MoFA以组合(Composition)的逻辑和编程(Programmable)的方法构建AI智能体。开发者通过模版的继承、编程、定制智能体&#xf…

C++:多态(协变,override,final,纯虚函数抽象类,原理)

目录 编译时多态 函数重载 模板 运行时多态 多态的实现 实现多态的条件 协变 析构函数的重写 override 关键字 final 关键字 重载、重写、隐藏对比 纯虚函数和抽象类 多态的原理 多态是什么? 多态就是有多种形态 多态有两种,分别是编译时…

【前端学习】作用域实际问题学习记录

在复习apply,call,bind的时候遇到了一个作用域问题。 let name noName let age 18function getMyname() {console.log(my name is this.name, and I am this.age years old); }getMyname() }在全局使用let定义变量name和age之后,运行g…

★ C++进阶篇 ★ 二叉搜索树

Ciallo&#xff5e;(∠・ω< )⌒☆ ~ 今天&#xff0c;我将继续和大家一起学习C进阶篇第三章----二叉搜索树 ~ ❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️❄️ 澄岚主页&#xff1a;椎名澄嵐-CSDN博客 C基础篇专栏&#xff1a;★ C基础篇 ★_椎名澄嵐的博客-CSD…

从零开始学习TinyWebServer

写在前面 项目参考&#xff1a;https://github.com/qinguoyi/TinyWebServer 写作框架/图参考&#xff1a;https://blog.csdn.net/qq_52313711/article/details/136356042?spm1001.2014.3001.5502 原本计划是&#xff0c;先将项目代码大概看一遍&#xff0c;然后再着手实现一下…