Git常用操作

news2024/11/24 4:43:33

目录

  • 一、前言
  • 二、查看变更及历史信息
    • 2.1 查看变更状态
      • 1、显示本地仓库有变更的文件
    • 2.2 查看历史记录
      • 1、查看历史提交记录
      • 2、查看历史某个文件的提交记录
  • 三、撤销提交
      • 3.1 撤销工作区的修改
      • 3.2 撤销暂存区的提交
      • 3.3 撤销已经提交到本地仓库的代码
  • 四、冲突解决
    • 4.1 远程仓库中有新增无修改,没拉取后就推送
    • 4.2 远程仓库中有修改,无新增,改了同一个文件,没拉取后就推送
  • 五、分支操作
    • 5.1 查看分支
      • 1、查看远程分支
      • 2、查看本地分支
      • 3、查看所有分支列表
    • 5.2 创建和切换分支
      • 1、创建新分支
      • 2、切换分支
      • 3、创建分支的同时切换到该分支上
    • 5.3 从远程仓库pull(拉取)代码到本地分支
      • 1、指定远程分支和本地分支
      • 2、如果不写本地分支名称,则默认和远程分支同名
    • 5.4 将新分支推送到远程仓库
      • 1、如果远程仓库已有该分支
      • 2、如果远程仓库没有该分支
    • 5.5 删除分支
      • 1、删除本地分支(不能删除当前所在分支,如果要删除,必须切换到其它分支上)
      • 2、删除远程分支
    • 5.6 合并分支
      • 1、假设我们在本地分支:`newbranch` 上
      • 2、切换到 master 分支上

一、前言

该篇文章主要总结在平时工作中使用 Git 最常见的几种情况。

二、查看变更及历史信息

2.1 查看变更状态

1、显示本地仓库有变更的文件

git status

示例:

远程仓库现有 1.txt 文件,拉取仓库最新的文件后,并创建一个文件,在查看状态:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git pull
Already up to date.

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ ll
total 0
-rw-r--r-- 1 Administrator 197121 0 Nov 29 13:28 1.txt

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ touch 2.txt

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git status
On branch develop
Your branch is up to date with 'origin/develop'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
        2.txt

nothing added to commit but untracked files present (use "git add" to track)

2.2 查看历史记录

1、查看历史提交记录

git log
git log --oneline 简洁的版本
Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git log --oneline
c4fdd63 (HEAD -> develop, origin/develop) add 2.txt 13.40
93b93f0 add 1.txt
3462cd9 delete four
bf0576c a b txt
9e29d0e rm
90627c2 test
495b54d 2.txt
6708865 test
262d5a5 test
2c1cfc6 test
fdef982 (origin/hotfix, origin/feature) Initial commit

2、查看历史某个文件的提交记录

git blame 文件名

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (develop)
$ git blame 2.txt
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 1) 123
00000000 (Not Committed Yet 2022-11-29 13:45:07 +0800 2) 456

三、撤销提交

在这里插入图片描述

3.1 撤销工作区的修改

git checkout -- 文件名

3.2 撤销暂存区的提交

git reset HEAD

3.3 撤销已经提交到本地仓库的代码

方法一:不保留本地修改

//向前回退一个版本
git reset --hard HEAD^
//向前回退两个版本,以此类推
git reset --hard HEAD^^

方法二:不保留本地修改

//向前回退一个版本
git reset --hard HEAD~1
//向前回退两个版本,以此类推
git reset --hard HEAD~2

方法三:保留本地修改

//查看上次提交号
git log --oneline 
//根据提交号进行撤销
git reset --hard 版本号

其中方法一和方法二不保留本地的修改(多一步 git checkout – 文件名 操作),方法三能够撤销提交并且保留本地的修改。

四、冲突解决

4.1 远程仓库中有新增无修改,没拉取后就推送

初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 和 b.txt 两个文件。

开发者1开发者2时间点
git pullgit pull09:01
touch c.txt09:02
git add .09:03
git commit -m ‘add c.txt’09:04
git push09:05
vim a.txt09:06
git add .09:07
git commit -m ‘update a.txt’09:08
git push09:09
报错,出现了冲突09:09
git pull09:10
git push09:11
推送成功09:11

总结:当不是本地和远程仓库同一个文件产生冲突,push 之前 使用 git pull 拉取下即可。

4.2 远程仓库中有修改,无新增,改了同一个文件,没拉取后就推送

初始状态:开发者1 和开发者 2本地以及远程仓库只有 a.txt 这个文件。

开发者1开发者2时间点
git pullgit pull09:01
vim a.txt09:02
git add .09:03
git commit -m ‘update 1.txt’09:04
git push09:05
vim a.txt09:06
git add .09:07
git commit -m ‘update a.txt’09:08
git push09:09
推送报错,出现了冲突09:09
git pull09:10
拉取报错,提示出现了冲突09:10
git status09:11
手动解决冲突文件(要么是手动合并要么是忽略自己的修改)09:12
解决完后,无需重新拉取,将这次修改再次提交09:12
git add .09:13
git commit -m ‘solve conflict a.txt’09:14
git push09:15

提示:git stash,可忽略自己的修改。

五、分支操作

远程仓库默认五个分支:master、release、develop、feature、hotfix

在这里插入图片描述

5.1 查看分支

1、查看远程分支

git branch -r

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -r
  origin/HEAD -> origin/master
  origin/develop
  origin/feature
  origin/hotfix
  origin/master
  origin/release

2、查看本地分支

git branch

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch
* master

3、查看所有分支列表

git branch -a

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature
  remotes/origin/hotfix
  remotes/origin/master
  remotes/origin/release

5.2 创建和切换分支

1、创建新分支

git branch 新分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch mybranch

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -a
* master
  mybranch
  remotes/origin/HEAD -> origin/master
  remotes/origin/develop
  remotes/origin/feature
  remotes/origin/hotfix
  remotes/origin/master
  remotes/origin/release

2、切换分支

git checkout 已有分支名称

3、创建分支的同时切换到该分支上

git checkout -b 新分支名称

5.3 从远程仓库pull(拉取)代码到本地分支

1、指定远程分支和本地分支

git pull origin 远程分支名称:本地分支名称

2、如果不写本地分支名称,则默认和远程分支同名

git pull origin 远程分支名称

5.4 将新分支推送到远程仓库

1、如果远程仓库已有该分支

git push origin 分支名称

2、如果远程仓库没有该分支

git push --set-upstream origin 新分支名称

该句命令可以将本地新建的分支上传到远程仓库,使远程仓库有了该分支。

5.5 删除分支

1、删除本地分支(不能删除当前所在分支,如果要删除,必须切换到其它分支上)

git branch -d 分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git branch -d mybranch
error: The branch 'mybranch' is not fully merged.
If you are sure you want to delete it, run 'git branch -D mybranch'.

删除的时候报错 The branch ‘mybranch’ is not fully merged(未完全合并分支),可使用以下命令:

git branch -D 分支名称

2、删除远程分支

git push origin :远程分支名称

示例:

Administrator@PC-20201224ZYTZ MINGW64 /e/git_test/demo (master)
$ git push origin :mybranch
remote: Powered by GITEE.COM [GNK-6.4]
To gitee.com:tmqqsir/demo.git
 - [deleted]         mybranch

5.6 合并分支

1、假设我们在本地分支:newbranch

git add .
git commit -m '完成某个功能'
git push -u origin newbranch

2、切换到 master 分支上

git checkout master

3、拉取 master 分支最新代码

git pull origin master

4、将 newbranch 分支合并到 master 分支上

git merge newbranch

如果合并的时候出现冲突,执行以下命令取消合并:

git merge --abort:

然后查看状态解决冲突:

git status

最后一步,push到远程仓库:

git push origin master

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

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

相关文章

iText7高级教程之html2pdf——6.在pdfHTML中使用字体

到目前为止&#xff0c;我们还没有花太多的精力来研究将HTML转换为PDF时使用的字体。我们知道Helvetica是iText在没有指定字体时使用的默认字体&#xff08;第2章&#xff09;&#xff0c;我们知道如果需要嵌入字体&#xff0c;pdfHTML会附带一些内置字体&#xff08;第4章&…

线下商家卖货难、拓客难、引流难,不如学习一下怎么结合O2O电商

大家好&#xff0c;我是阿璋&#xff0c;互联网行业中一直流传着这样的一句话&#xff0c;说的是“站在风口上&#xff0c;猪都能飞起来”。这句话的意思是&#xff0c;如果跟上了时代的发展&#xff0c;并且在时代发展的关键档口&#xff0c;那么在时代的推动下&#xff0c;也…

关系抽取(一)

关系抽取从流程上&#xff0c;可以分为流水线式抽取&#xff08;Pipline&#xff09;和联合抽取&#xff08;Joint Extraction&#xff09;两种&#xff0c;流水线式抽取就是把关系抽取的任务分为两个步骤&#xff1a;首先做实体识别&#xff0c;再抽取出两个实体的关系&#x…

Zookeeper(curator)实现分布式锁案例

文章目录一、搭建Zookeeper1、下载2、安装启动二、Zookeeper分布式锁简述三、curator客户端使用分布式锁1、curator概述2、curator使用四、测试效果1、几个常见命令1&#xff09;ls2&#xff09;stat3&#xff09;get4&#xff09;set2、加锁解锁效果3、竞争锁效果一、搭建Zook…

「区块链+数字身份」:DID 身份认证的新战场

美国经济学家布莱恩 • 阿瑟在其著作《技术的本质》中&#xff0c;写过这么一句话&#xff1a;「技术总是进行着这样一种循环&#xff0c;为解决老问题去采用新技术&#xff0c;新技术又引发新问题&#xff0c;新问题的解决又要诉诸更新的技术」。 区块链技术之所以能流行&…

金融外包测试项目经验分享

金融项目外包 测试管理 经验 软件测试 首先确定项目外包测试的核心问题—对项目外包测试的定位。 项目外包测试是一种服务性工作&#xff0c;所以把服务放在第一位是做任何事情的出发点。作为项目经理&#xff0c;一定要把这种思想告诉给我们的测试团队成员&#xff0c;树立服务…

webGL学习

1 初试webGL const canvas document.getElementById(canvas) //获取webgl上下文对象 相当于设置画笔 const gl canvas.getContext(webgl) //声明颜色 gl.clearColor(0,0,0,1)gl.clear(gl.COLOR_BUFFER_BIT)2 将rbga颜色设置为webgl颜色 使用three.js的color const color …

在一个已经EXIT的docker容器中,修改配置文件

文章目录背景一、方法一二、方法二1.通过运行docker inspect [容器id]来获取到底层的容器对象信息2.修改配置文件总结背景 当我们在修改容器里的配置文件后(例如mysql),发现重新运行容器起不来了,此时不要慌&#xff01;下面我来介绍两种方法来修改已经停止的容器里的配置文件,…

jvm监控服务性能、以及资源使用情况

目录 1.前言&#xff1a; 2.如何监控 2.1.spring admin 2.2.pass平台 2.3jvm 本地jdk监控本地服务 2.3.1介绍 2.3.2JVisualVM能做什么 2.3.3使用 2.4jvm 本地jdk监控远程服务 方式一 方式二 1.前言&#xff1a; 常规新项目上线&#xff0c;做非功能测试&#xff08…

【目标检测】Faster R-CNN的几点理解

目录&#xff1a;Faster R-CNN的几点理解一、Faster R-CNN概述二、R-CNN、Fast R-CNN、Faster R-CNN的对照2.1 R-CNN2.1.1 R-CNN的检测步骤2.1.2 R-CNN的主要缺点2.2 Fast R-CNN2.2.1 Fast R-CNN的检测步骤2.2.2 Fast R-CNN的缺点2.3 R-CNN、Fast R-CNN、Faster R-CNN的比较三、…

【Android App】获取照片里的位置信息及使用全球卫星导航系统(GNSS)获取位置实战(附源码和演示 超详细)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 一、获取照片里的位置信息 手机拍摄的相片还保存着时间、地点、镜头参数等信息&#xff0c;这些信息由相片接口工具ExifInterface管理&#xff0c;它的常用方法说明如下&#xff1a; getLatLong&#xff1a;获取相片拍摄时候的…

双飞翼布局

实现双飞翼布局&#xff0c;两边保持不保&#xff0c;只有中间变化&#xff1a; html代码&#xff1a; ------------------------------------------------------------------------------------ <!doctype html> <html> <head> <meta charset"utf…

拼多多季报图解:营收355亿同比增65% 研发投入达27亿

雷递网 雷建平 11月28日拼多多今日发布2022年第三季度业绩报告。财报显示&#xff0c;拼多多2022年第三季度营收为355亿元&#xff0c;同比增长65.1%。受到一些项目投入延缓等偶发因素影响&#xff0c;三季度平台运营费用为176.5亿元&#xff0c;占收入的比例从上年同期的59.6&…

VH03型多功能采集仪

河北稳控科技手持振弦传感器VH03型多功能采集仪&#xff0c;是专用的多类型传感器手持式读数仪&#xff0c;主测传感类型为单弦式振弦传感器&#xff0c;辅测传感类型为电压、电流传感。采用32位ARM处理器和大尺寸全彩屏、阵列按键设计&#xff0c;在完成快速测读的同时还具备极…

高校排课系统/排课管理系统的设计与实现

摘 要 网络的广泛应用给生活带来了十分的便利。所以把高校排课与现在网络相结合&#xff0c;利用JSP技术建设高校排课系统&#xff0c;实现高校排课的信息化。则对于进一步提高高校排课发展&#xff0c;丰富高校排课经验能起到不少的促进作用。 高校排课系统能够通过互联网得到…

国民经济行业代码查询系统-公司行业代码查询

今天在申请公司的一些信息时&#xff0c;要我给公司行业的代码&#xff0c;4位&#xff0c;问了财务和高企的申请伙伴&#xff0c;都没有特别清晰&#xff0c;让百度&#xff0c;直接百度花了点时间&#xff0c;记录一下&#xff0c;帮助其他的伙伴 国民经济行业代码查询系统 …

Python的10个编程技巧,你不一定都知道

文末有Python资料下载 1. 原地交换两个数字 Python 提供了一个直观的在一行代码中赋值与交换&#xff08;变量值&#xff09;的方法&#xff0c;请参见下面的示例&#xff1a; 赋值的右侧形成了一个新的元组&#xff0c;左侧立即解析&#xff08;unpack&#xff09;那个&…

2022-安洵杯

WEB babyphp call_user_func() 函数如果传入的参数是array类型的话&#xff0c;会将数组的成员当作类名和方法&#xff0c; array(0) { } <?php //something in flag.phpclass A {public $a;public $b;public function __wakeup(){$this->a "babyhacker";…

Mathematica(36)-在Plot中画平行于y轴的线

在论文写作过程中&#xff0c;我们常常也需要画一条平行于y坐标轴的直线&#xff0c;怎么实现呢&#xff1f; 比如&#xff0c;下面的代码就是绘制了一条平行于y轴的直线&#xff0c;这条直线采用了虚线来表示 Plot[Sin[x], {x, 0, 2 Pi}, Epilog -> {Dashed, Line[{{5, -…

ISCSLP 2022 | AccentSpeech—从众包数据中学习口音来构建目标说话人的口音语音合成系统

构建带口音的语音合成系统可以增加语音合成的多样性和趣味性。然而不是每个人都能说多种口音。为了实现口音与说话人音色的自由组合&#xff0c;借助迁移学习技术&#xff0c;为没有口音数据的说话人构建口音合成系统&#xff0c;是实现“口音任意说”的有效途径。但是以往大多…