Git 的基本操作 ——命令行

news2024/11/22 8:44:30

Git 的工作流程

详解如下:

本地仓库:是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库)

远程仓库:是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器)

工作区: 我们自己写代码(文档)的地方

暂存区: 在 本地仓库中的一个特殊的文件(index) 叫做暂存区,临时存储我们即将要提交的文件区域。


clone(克隆):将远程仓库中克隆代码到本地仓库。

checkout(检出):从本地仓库中检出一个仓库分支然后进行修订。

add(添加):在提交前先将代码提交到暂存区。

commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本。

fetch(抓取):从远程仓库抓取到本地仓库,不进行任何的合并动作,一般操作比较少。

pull(拉取):从远程仓库代码下载到本地仓库,自动进行合并(merge),然后放到工作区,相当于fetch+merge。

push(推送):修改完成后,需要和团队共享代码时,将本地仓库代码推送到远程仓库。

一、本地仓库操作

1、配置环境

当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。

# 设置用户信息
git config --global user.name "用户名称"
git config --global user.email "email地址"
# 查看配置信息
git config --global user.name   (查看用户名配置信息)
git config --global user.email  (查看email地址配置信息)
git config --list   (查看git所有配置信息)

2、初始化本地仓库init

# 初始化仓库带工作区
git init

3、添加工作区到暂存区add

git add  <文件名> 或 git add . (添加当前目录所有文件到暂存区)

4、提交暂存区到本地仓库commit

git commit -m "注释内容"  <文件名>  

5、查看修改状态status

git status

6、查看日志提交记录

git log
git reflog (同时存在删除的记录)

7、版本回退/切换

git reset --hard commitID   (commitID可使用git log指令查看)

8、克隆clone

# 从远程仓库克隆
git clone 远程Git仓库地址 
例如: git clone https://gitee.com/harrietmao/git_studyfirst.git

二、远程仓库操作

远程名称:默认是origin,取决于远程服务器设置

1、查看远程

# 查看远程  列出指定的每一个远程服务器的简写
git remote 
# 查看远程 , 列出 简称和地址
git remote  -v  
# 查看远程仓库详细地址
git remote show  <仓库简称>

2、添加/移除远程仓库

# 添加远程仓库
git remote add <远程名称> <仓库地址url>
远程名称:默认是origin,取决于远程服务器设置
仓库地址:从远程服务器获取此地址URL
​
# 移除远程仓库和本地仓库的关系(只是从本地移除远程仓库的关联关系,并不会真正影响到远程仓库)
git remote rm <shortname> 

3、推送到远程仓库push

git push [remote-name] [branch-name]
如果远程分支和本地分支名称相同,则可以只写本地分支
git push origin master == git push origin master:master
​
**--set-upstream 推送到远端的同时并且建立起和远端分支的关联关系
git push --set-upstream origin master
    --如果当分支已经和远端分支关联,则可以省略分支名和远端名
    git push 将master分支推送到已关联的远端分支。

4、查看本地分支与远程分支的关联关系

git branch -vv

5、从远程仓库克隆(clone)、抓取(fetch)、合并(merge)、拉取(pull=fetch+merge)

# 从远程仓库克隆
git clone <url> 
# 从远程仓库抓取 (拉取到.git 目录,不会合并到工作区,工作区发生变化)
git fetch  <shortname>  <分支名称>
# 手动合并  把某个版本的某个分支合并到当前工作区
git merge <shortname>/<分支名称>
# 从远程仓库拉取 (拉取到.git 目录,合并到工作区,工作区不发生变化) = fetch+merge
git pull  <shortname>  <分支名称>
git pull  <shortname>  <分支名称>  --allow-unrelated-histories  #  强制拉取合并

注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错(fatal: refusing to merge unrelated histories ),解决此问题可以在git pull命令后加入参数--allow-unrelated-histories (如上 命令)

# 将本地仓库推送至远程仓库的某个分支
git push [remote-name] [branch-name]

三、分支

# 默认 分支名称为 master

1、查看分支

# 列出所有本地分支
git branch
# 列出所有远程分支
git branch -r
# 列出所有本地分支和远程分支
git branch -a

2、创建分支

git branch 分支名

3、切换分支(checkout)

git checkout 分支名
git checkout -b 分支名 (切换到一个不存在的分支--创建并切换)

4、删除分支

不能删除当前分支,只能删除其他分支

# 删除分支(如果分支已经修改过,则不允许删除)
git branch -d  <分支名>    (删除分支前,需要做各种检查)
# 强制删除分支
git branch -D  <分支名>    (不做任何检查,强制删除)
# 删除远程仓库分支
git push origin –d <branchName>

5、提交分支至远程仓库

git push <仓库简称> <分支名称>

6、合并分支,将其他分支合并至当前工作区

git merge <分支名称>

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

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

相关文章

【小白专用】PHP基本语法 23.11.04

PHP基本语法 PHP是超文本预处理器 由服务器解析执行 可以与 html 进行混编(嵌入) ,PHP是一种弱类型语言 1.1 PHP标记 PHP和其他Web语言一样&#xff0c;都是用一对标记将PHP代码包含起来&#xff0c;以便和HTML代码区分开来。PHP支持4种风格的标记&#xff0c;如表所示。 标…

王道p18 6.从有序顺序表中删除所有其值重复的元素,使表中所有元素的值均不同(c语言代码实现)

视频讲解在这里&#xff1a;&#x1f447; 顺序表p18 第6题wd数据结构课后代码题&#xff08;c语言代码实现&#xff09;_哔哩哔哩_bilibili 本题代码如下 void deleterepeat(struct sqlist* L) {if (L->length 0)printf("表空");int i 0;int k 0;for (i 1…

Vue3项目嵌套企业微信扫码登录

企业微信登录流程 企业微信提供了OAuth的授权登录方式&#xff0c;可以让从企业微信终端打开的网页获取成员的身份信息&#xff0c;从而免去登录的环节。 整个流程采用的是OAuth2&#xff0c;流程如下&#xff1a; 前端操作思路 配置一些参数&#xff0c;渲染登录模板也就是…

K8s:部署 CNI 网络组件+k8s 多master集群部署+负载均衡及Dashboard k8s仪表盘图像化展示

目录 1 部署 CNI 网络组件 1.1 部署 flannel 1.2 部署 Calico 1.3 部署 CoreDNS 2 负载均衡部署 3 部署 Dashboard 1 部署 CNI 网络组件 1.1 部署 flannel K8S 中 Pod 网络通信&#xff1a; ●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff08;Pod 内的容…

https://aip.baidubce.com/oauth/2.0/token报错blocked by CORS policy

还是跟以前一样&#xff0c;我们先看报错点&#xff1a;&#xff08;注意小编这里是H5解决跨域的&#xff0c;不过解决跨域的原理都差不多&#xff09; Access to XMLHttpRequest at https://aip.baidubce.com/oauth/2.0/token from origin http://localhost:8000 has been blo…

[C++进阶篇]STL中vector的使用

一、vector的介绍 1.vector的介绍 vector是表示可变大小数组的序列容器。vector也采用的连续存储空间来存储元素&#xff0c;就是可以采用下标对vector的元素进行访问&#xff0c;和数组一样。它的大小是可以动态改变的。 2.重要的接口组成 二、 vector迭代器的使用 2.1 ve…

[SSD综述1.6] SSD固态硬盘参数图文解析_选购固态硬盘就像买衣服?

依公知及经验整理,原创保护,禁止转载。 专栏 《SSD入门到精通系列》 <<<< 返回总目录 <<<< ​ 传统的 HDD 是“马达+磁头+磁盘”的机械结构,而 SSD 则是“闪存介质+主控”的纯半导体芯片存储结构,两者在数据存储介质和读写方式上有着本质区别,这…

S4.2.4.5 Lane Polarity Inversion

一 本章节主讲知识点 1.1 Polarity Inversion 极性反转 1.2 Lane Reversal 通道翻转 二 本章节原文翻译 2.1 极性反转 原文摘录&#xff1a; PCIe 协议规定&#xff0c;必须支持该特性。该特性的目标也是为了简化 PCB 的布线。每个 lane 都包含一组发送&#xff08;Tx&…

Datawhale-AIGC实践

Datawhale-AIGC实践 部署ChatGLM3-6B平台 clone 项目&#xff0c;配置环境 git clone https://github.com/THUDM/ChatGLM3.git cd ChatGLM3 pip install -r requirement.txt修改web_demo.py, web_demo2.py 设置加载模型的路径修改启动代码: demo.queue().launch(shareFalse…

4.6找出字符串中第一个匹配的下标(还是不太会KMP)

算法&#xff1a;用了KMP算法节省时间、空间复杂度 不过代码还是不太会&#xff0c;只能解读正确代码 正确代码&#xff1a; class Solution:def getNext(self, next, s):j -1next[0] jfor i in range(1, len(s)):while j > 0 and s[i] ! s[j1]:j next[j]if s[i] s[j…

uniapp原生插件之安卓SVGA动画原生插件

插件介绍 安卓SVGA插件是原生组件式插件&#xff0c;支持SVGA动画文件格式播放&#xff0c;支持网络地址播放 插件地址 安卓SVGA动画原生插件 - DCloud 插件市场 详细使用文档 uniapp 安卓SVGA动画原生插件 超级福利 uniapp 插件购买超级福利 用法 插件权限 android…

2023年软件系统架构师论文【回忆版】

2023年11月5日&#xff0c;全国计算机等级下半年考试&#xff0c;北京市软件架构师考试其中有个考点在首都经济贸易大学丰台校区&#xff09;&#xff0c;地址&#xff1a;北京市丰台区花乡张家路口121号&#xff08;北门入校&#xff09; 注意&#xff1a;机考的考试时间有所变…

docker镜像使用

一、查看docker版本 docker version docker默认安装目录 /var/lib/docker 目录文件如下&#xff1a; 二、查看下载的镜像 docker images 三、下载镜像 docker pull [OPTIONS] NAME[:TAG|DIGEST] option作用-a, --all-tags拉取所有 tagged 镜像–disable-content-trust…

win10 + cmake3.17 编译 nvtt2.1.0

nvtt下载地址&#xff1a; https://github.com/pps83/nvtt 以下操作的根目录&#xff1a;D:\Depend_3rd_party\nvtt 2.1.0 1. 下载nvtt 2.1.0&#xff0c;解压到根目录&#xff0c;得到 D:\Depend_3rd_party\nvtt 2.1.0\nvidia-texture-tools-2.1.0 2. 创建build文件夹&am…

BO(Business Object)是一种用于表示业务对象的设计模式

BO是 Business Object 的缩写&#xff0c;是一种用于表示业务对象的设计模式。在Java中&#xff0c;BO的主要作用是 封装业务逻辑&#xff0c;实现业务流程的可重用性和可维护性。 BO主要有以下几个作用&#xff1a; 实现业务逻辑的封装&#xff1a;将业务逻辑封装在BO对象中&a…

LVGL_多界面切换

LVGL_多界面切换 1、创建多个界面&#xff08;create_page1();&#xff09; 2、加载一个界面显示&#xff08;lv_scr_load(page1);&#xff09; 3、切换不同界面显示&#xff08;lv_scr_load_anim(page2, LV_SCR_LOAD_ANIM_OVER_LEFT, 300, 0, false);&#xff09; static lv_…

窗口小插件,用于显示当前系统时间,CPU与内存占用率,网络上传下载速度

最近在弄一个小玩意儿&#xff0c;旨在生成一个窗口小插件&#xff0c;用于显示当前系统时间&#xff0c;CPU与内存占用率&#xff0c;网络上传下载速度 初始目标&#xff1a; 生成一个弹窗&#xff0c;窗口置顶弹窗内可以进行设定&#xff0c;勾选想要显示的对应信息&#xf…

【深度学习 AIGC】stable diffusion webUI 使用过程,参数设置,教程,使用方法

文章目录 docker快速启动vae.ckpt或者.safetensorsCFG指数/CFG Scale面部修复/Restore facesRefinerTiled VAEClip Skipprompt提示词怎么写 docker快速启动 如果你想使用docker快速启动这个项目&#xff0c;你可以按下面这么操作&#xff08;显卡支持CUDA11.8&#xff09;。如…

【蓝桥每日一题]-倍增(保姆级教程 篇1)

今天讲一下倍增 目录 题目&#xff1a;忠诚 思路&#xff1a; 题目&#xff1a;国旗计划 思路&#xff1a; 查询迭代类倍增&#xff1a; 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂&#xff0c;减去之后&#xff0c;再重复这…

VSCode中的任务什么情况下需要配置多个问题匹配器problemMatcher?多个问题匹配器之间的关系是什么?

☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython 一、简介 在 VS Code 中&#xff0c;tasks.json 文件中的 problemMatcher 字段用于定义如何解析任务输出中的问题&#xff08;错误、警告等&#xff09;。 problemMatcher是一个描述问题匹配器的接口&…