Git 的基本操作 ——命令行

news/2024/5/17 18:27:01 标签: github, git, gitee

Git 的工作流程

详解如下: 本地仓库:是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库) 远程仓库:是在远程服务器上的Git仓库,存放代码(可以是github>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.niftyadmin.cn/n/5151106.html

相关文章

FMC+DAM驱动LVGL刷屏

前提条件 使用FMC驱动LCD刷屏 LVGL移植 开启DMA 需要开启MEMTOMEMDMA。 开启MPU 有MPU时需要 使能I-cache D-cache时 使用DMA传输数据时要保证数据的完整行和准确性 修改代码 逻辑 等待DMA传输完成然后再刷屏。 修改 在DMA初始化函数中最后添加 注册DMA传输完成调用函…

YOLO V1学习笔记

为什么要学YOLOV1_哔哩哔哩_bilibili 这个视频讲解的很好&#xff0c;建议在看这个之前看看卷积神经网络&#xff0c;会对卷积后的结果理解更加深刻一点。 一 背景 目标检测分为单阶段和两阶段模型。 之前的目标检测DPM、R-CNN、Fast-RCNN、Faster-RCNN都是双阶段模型&…

MySQL进阶之性能优化与调优技巧

数据库开发-MySQL 1. 多表查询1.1 概述1.1.2 介绍1.1.3 分类 1.2 内连接1.3 外连接1.4 子查询1.4.1 介绍1.4.2 标量子查询1.4.3 列子查询1.4.4 行子查询1.4.5 表子查询 2. 事务2.1 介绍2.2 操作2.3 四大特性 3. 索引3.1 介绍3.2 结构3.3 语法 1. 多表查询 1.1 概述 1.1.2 介绍…

如何当好一面面试官?

最近公司恢复了招聘&#xff0c;重新启动了校招流程&#xff0c;现在都已经 11 月了&#xff0c;刚好赶上校招黄金期&#xff0c;不过提前批的时间已经过了&#xff0c;也是有点神奇。 公司停止招聘好久了&#xff0c;突然重启&#xff0c;赶忙赶急地让我们推荐面试官&#xf…

【马蹄集】—— 百度之星 2023

百度之星 2023 目录 BD202301 公园⭐BD202302 蛋糕划分⭐⭐⭐BD202303 第五维度⭐⭐ BD202301 公园⭐ 难度&#xff1a;钻石    时间限制&#xff1a;1秒    占用内存&#xff1a;64M 题目描述 今天是六一节&#xff0c;小度去公园玩&#xff0c;公园一共 N N N 个景点&am…

炫云客户端信用额度如何修改?

现在炫云新注册用户信用额度是100元&#xff0c;但是有人觉得信用额度太高了&#xff0c;想修改信用额度&#xff0c;不知道炫云的信用额度如何修改&#xff0c;今天就教大家如何修改炫云的信用额度。炫云的信用额度在炫云官网和客户端都可以修改。 我们先来看炫云官网如何修改…

JavaScript执行上下文和调用栈

上节课我们已经说过了&#xff0c;JavaScript的代码执行是发生在js引擎中的调用堆栈的&#xff0c;但是具体是如何运行的&#xff0c;我们来详细剖析一下 如何执行上下文 执行上下文&#xff1a; 执行上下文是指在JavaScript中代码被执行时所创建的环境。它包含了变量、函数、…

33 mysql find_in_set 的实现

前言 这里我们主要是来探讨一下 mysql 中 in 的使用, find_in_set 的使用 这两者 在我们实际应用中应该也是 非常常用的了 测试数据表如下 CREATE TABLE tz_test (id int(11) unsigned NOT NULL AUTO_INCREMENT,field1 varchar(16) DEFAULT NULL,field2 varchar(16) DEFAU…