面试资料快速复习 Git常用命令(简单实用)

Git-command

Git常用命令、面试复习、简单实用命令

一、概念理解

(一)工作区、暂存区、本地仓库、远程仓库

  • workspace:工作区
  • staging area:暂存区/缓存区
  • local repository:本地仓库
  • remote repository:远程仓库

(二)远程分支、当前本地分支

(三)常用命令

1.git init

新项目执行Git初始化,并进行第一次提交

git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/liyinchigithub/Git-commands.git
git push origin master

2.git clone

对github、gitlab远程仓库,已有项目进行克隆

git clone https://github.com/liyinchigithub/Git-commands.git

3.git pull、git fetch

(1)将远程主机 origin 的 master 分支拉取过来,与本地的 brantest 分支合并。

git pull origin
git pull https://github.com/liyinchigithub/Git-commands.git

远程分支是与当前分支合并

git pull origin master

(2)拉取代码,但不合并到本地

git fetch --all
git fetch --tags
git reset --hard origin/master

(3)git pull 与git fetch区别:

  • 远端跟踪分支不同

git fetch能够直接更改远端跟踪分支。

git pull无法直接对远程跟踪分支操作,我们必须先切回本地分支然后创建一个新的commit提交。

  • 拉取不同

git fetch会将数据拉取到本地仓库,它并不会自动合并或修改当前的工作。

git pull是从远程获取最新版本并merge到本地,会自动合并或修改当前的工作。

  • commitID不同

使用git fetch更新代码,本地的库中master的commitID不变,还是等于1。

使用git pull更新代码,本地的库中master的commitID发生改变,变成了2。

4.git add

(1)添加指定目录到暂存区,包括子目录:

git add [dir]

例如:添加2个文件到暂存区

git add README hello.js 

(2)添加当前目录下的所有文件到暂存区:

git add .

5.git commit

将暂存区内容添加到本地仓库中

git commit -m "提交内容备注"

在执行git add . 之后执行git commit

6.git reset

(1)回滚代码,撤销某一次commit,并强推到远程仓库

如果需要删除的 commit 是最新的,那么可以通过 git reset 命令将代码回滚到之前某次提交的状态,但一定要将现有的代码做好备份,否则回滚之后这些变动都会消失。具体操作如下:

git log // 查询要回滚的 commit_idgit reset --hard commit_id // HEAD 就会指向此次的提交记录git push origin HEAD --force // 强制推送到远端

(2)回退所有内容到上一个版本

git reset HEAD^

(3)回退 hello.js 文件的版本到上一个版本

git reset HEAD^ hello.js

执行 git reset HEAD 命令用于取消已缓存的内容。

执行 git reset HEAD 以取消之前 git add 添加,但不希望包含在下一提交快照中的缓存 。

(4)回退到指定版本

查看提交日志,回退到指定commit_id

git log
git reset --hard commit_id

或者

git reset 052e

(5)回退上上上一个版本

git reset --soft HEAD~3

备注:此次提交之后的修改会被退回到暂存区

(6)回退到某个版本回退点之前的所有信息。

git reset –hard bae128

备注:此次提交之后的修改不做任何保留,git status 查看工作区是没有记录的。

(7)将本地的状态回退到和远程的一样

git reset --hard origin/master

注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。

(8)HEAD 说明:

可以使用 ~数字表示

(9)误删恢复

如果回滚代码之后发现复制错了 commit_id,或者误删了某次 commit 记录,也可以通过下方代码恢复:

git relog // 复制要恢复操作的前面的 hashgit reset --hard hash // 将 hash 换成要恢复的历史记录的 hash

注意:删除中间某次提交时最好不要用 git reset 回退远程库,因为之后其他人提交代码时用 git pull 也会把自己的本地仓库回退到之前的版本,容易出现差错进而增加不必要的工作量。

7.git branch

(1)新建分支

git branch 新建的分支名

(2)查看所有分支信息

git branch

(3) 删除分支

git branch master
git branch -d 分支名称

删除分支前,需要切换到其他分支

①删除本地分支

git branch
git checkout master
git branch -d 本地分支名

②删除远程分支

git push origin --delete 远程分支名称

如何本地分支已提交到远程仓库,想删除这个分支,除了删除本地分支,还需要远程分支也要删除,以上两个命令都要执行一次。

8.git status

查看当前分支状态

$ git status
On branch masterInitial commitChanges to be committed:(use "git rm --cached <file>..." to unstage)new file:   READMEnew file:   hello.php

9.git checkout

切换分支

10.git push

(1)将本地的 master 分支推送到 origin 主机的 master 分支。

git push origin master

(2)本地版本与远程版本有差异,但又要强制推送可以使用 --force 参数:

git push --force origin master

(3)指定分支

git push <远程主机名> <本地分支名>:<远程分支名>

完整操作

git branch
git checkout 分支名
修改代码
git add .
git commit -m "提交内容注释"
git push origin master

远程项目仓库对提交上来的分支代码还有做merge操作,才可以把分支代码合并到master中

11.git merge


(1)开发分支(dev)上的代码达到上线的标准后,要合并到 master 分支

git checkout dev
git pull
git checkout master
git merge dev
git push -u origin master

(2)当master代码改动了,需要更新开发分支(dev)上的代码

git checkout master 
git pull 
git checkout dev
git merge master 
git push -u origin dev

12.git rebase

当两个分支不在一条线上,需要执行 merge 操作时使用该命令。

(1)撤销提交

如果中间的某次 commit 需要删除,可以通过 git rebase 命令实现,方法如下:

git log // 查找要删除的前一次提交的 commit_idgit rebase -i commit_id // 将 commit_id 替换成复制的值进入 Vim 编辑模式,将要删除的 commit 前面的 `pick` 改成 `drop`保存并退出 Vim

(2)解决冲突

该命令执行时极有可能出现 reabase 冲突,可以通过以下方法解决:

git diff // 查看冲突内容// 手动解决冲突(冲突位置已在文件中标明)git add <file>git add -A // 添加git rebase --continue // 继续 rebase// 若还在 rebase 状态,则重复 2、3、4,直至 rebase 完成出现 applying 字样git push

13.git revert

git revert:放弃某次提交。

git revert 之前的提交仍会保留在 git log 中,而此次撤销会做为一次新的提交。

git revert -m:用于对 merge 节点的操作,-m 指定具体某个提交点。

(1)撤销提交

要撤销中间某次提交时,使用 git revert 也是一个很好的选择:

git log // 查找需要撤销的 commit_idgit revert commit_id  // 撤销这次提交

(2)撤销 merge 节点提交

如果这次提交是 merge 节点的话,则需要加上 -m 指令:

git revert commit_id -m 1 // 第一个提交点// 手动解决冲突git add -Agit commit -m ""git revert commit_id -m 2 // 第二个提交点// 重复 2,3,4git push

14.git log

(1)查看提交历史

(2)用 --oneline 选项来查看历史记录的简洁的版本


git log --oneline

(3)可以用 --graph 选项,查看历史中什么时候出现了分支、合并。

(4)可以用 --reverse 参数来逆向显示所有日志。

git log --reverse --oneline

(5)如果只想查找指定用户的提交日志

git log --author

例如,比方说我们要找 Git 源码中 liyinchi 提交的部分

git log --author=Linus --oneline -5

(6)如果你要指定日期,可以执行几个选项:–since 和 --before,但是你也可以用 --until 和 --after。

git log --oneline --before={3.weeks.ago} --after={2020-04-23} --no-merges

(7)git blame

git blame <file>

15.git remote


远程仓库操作

git remote show [remote]
git remote show https://github.com/liyinchigithub/Git-commands

(1)添加远程版本库

一般在新建项目时使用

git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/liyinchigithub/Git-commands.git
git push -u origin master

(2)删除远程仓库

git remote rm name

(3)修改仓库名

git remote rename old_name new_name 

16.git config 命令

(1)显示当前的 git 配置信息

git config --list
credential.helper=osxkeychain
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true
core.ignorecase=true
core.precomposeunicode=true

(2)编辑当前的 git 配置信息

git config -e

16.git rm

如果需要删除的 commit 是一个或多个文件,可以进行以下操作。

(1)被提交到仓库的某个文件需要删除,可以使用 git rm 命令:

git rm <file> // 从工作区和暂存区删除某个文件git commit -m "" // 再次提交到仓库

(2)如果只想从暂存区删除文件,本地工作区不做出改变,可以:

git rm --cached <file>

(3)如果在工作区不小心删错了某个文件,可以用 git checkout 将暂存区的文件覆盖工作区的文件,从而把误删的文件恢复:

git checkout -- <file>

(4)用 git rm 删除文件,同时还会将这个删除操作记录下来;

用 rm 删除文件,删除的仅仅是本地物理文件,没有将其从 git 的记录中剔除。

(5)git add 和 git rm 区别,

git add 仅能记录添加、改动的动作,删除的动作需靠 git rm 来完成。

17.git tag

(1)打标签

到一个重要的阶段,并希望永远记住那个特别的提交快照,你可以使用 git tag 给它打上标签

git tag -a v1.0 -m "release 1.0 version" 
git push origin :v1.0
image

(2)查看本地标签

git tag

(3)查看远程所有 tag

git ls-remote --tags origin

(4)将本地tag推送到远程

git push origin v1.0
image

也可以仅执行该句,会自动生成本地tag并推送到远程

(5)完整的标签操作

git add .
git commit -m "first commit"
git push origin master
git push origin v1.0

或者

git add .
git commit -m "first commit"
git push origin master
git tag -a v1.1 -m "release 1.0 version"
git tag
git push origin :v1.1

(6)删除本地tag

git tag -d v1.0

(7)删除远程tag

git push origin :refs/tags/v1.0

(8)追加标签

如果我们忘了给某个提交打标签,又将它发布了,我们可以给它追加标签。

$ git tag -a v0.9 85fc7e7
$ git log --oneline --decorate --graph
*   d5e9fc2 (HEAD -> master) Merge branch 'change_site'
|\  
| * 7774248 (change_site) changed the runoob.php
* | c68142b 修改代码
|/  
* c1501a2 removed test.txt、add runoob.php
* 3e92c19 add test.txt
* 3b58100 (tag: v0.9) 第一次版本提交
*

(3)查看标签

git tag

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

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

相关文章

Apache Airflow (九) :Airflow Operators及案例之BashOperator及调度Shell命令及脚本

&#x1f3e1; 个人主页&#xff1a;IT贫道_大数据OLAP体系技术栈,Apache Doris,Clickhouse 技术-CSDN博客 &#x1f6a9; 私聊博主&#xff1a;加入大数据技术讨论群聊&#xff0c;获取更多大数据资料。 &#x1f514; 博主个人B栈地址&#xff1a;豹哥教你大数据的个人空间-豹…

C#单例模式懒汉式与饿汉式

单例模式一般分为懒汉模式和饿汉模式&#xff0c;懒汉式单例在第一次引用时创建实例&#xff0c;不是在类加载时&#xff1b;饿汉式单例模式是一种在类加载时就创建实例的方式&#xff0c;因此也称为静态初始化。 单例模式实现的技巧时构造私有&#xff0c;向外提供静态实例。…

12-2- DCGAN -简单网络-卷积网络

功能 随机噪声→生成器→MINIST图像。 训练方法 0 损失函数:gan的优化目标是一个对抗损失,是二分类问题,用BCELoss 1 判别器的训练,首先固定生成器参数不变,其次判别器应当将真实图像判别为1,生成图像判别为0 loss=loss(real_out, 1)+loss(fake_out, 0) 2 生成器的…

react-router-dom 版本6.18.0中NavLink的api和属性介绍

React Router 是一个基于 React 的路由库&#xff0c;它可以帮助我们在 React 应用中实现页面的切换和路由的管理。而 NavLink 则是 React Router 中的一个组件&#xff0c;它可以帮助我们实现导航栏的样式设置和路由跳转。 在 React Router 版本6.18.0 中&#xff0c;NavLink…

Matalab插值详解和源码

转载&#xff1a;Matalab插值详解和源码 - 知乎 (zhihu.com) 插值法 插值法又称“内插法”&#xff0c;是利用函数f (x)在某区间中已知的若干点的函数值&#xff0c;作出适当的特定函数&#xff0c;在区间的其他点上用这特定函数的值作为函数f (x)的近似值&#xff0c;这种方…

windows快捷方式图标变成空白

今天突然有客户说应用程序快捷方式图标变成了空白&#xff0c;就研究了一下&#xff0c;网上找了一下很多都说是什么图标缓存有问题&#xff0c;试过之后发现并不能解决问题。 然后发现用户的文件上都一把黄色的小锁的标志&#xff0c;查了一下说是文件属性里面设置加密之后就会…

高防CDN:构筑网络安全的钢铁长城

在当今数字化的世界里&#xff0c;网络安全问题日益突显&#xff0c;而高防CDN&#xff08;高防御内容分发网络&#xff09;正如一座坚不可摧的钢铁长城&#xff0c;成为互联网安全的不可或缺之物。本文将深入剖析高防CDN在网络安全环境中的关键作用&#xff0c;探讨其如何构筑…

Microsoft SQL Server Management Studio(2022版本)启动无法连接到服务器

Microsoft SQL Server Management Studio&#xff08;2022版本&#xff09;启动无法连接到服务器 解决方法&#xff1a; 打开SQL Server 2022 配置管理器。 启动即可。

java源码-工程讲解

1、 工程目录 源码工程目录讲解部分&#xff0c;讲解过程会让大家对后端源码工程有一个大致的了解&#xff0c;能让大家在此改造&#xff0c;就可以衍生出一些新的功能&#xff0c;需要对java技术深入了解&#xff0c;需要看后续java技术讲解部分 整个架构是一个spring-boot…

计算机网络的发展

目录 一、计算机网络发展的四个阶段 1、第一阶段&#xff1a;面向终端的计算机网络&#xff08;20世纪50年代&#xff09; 2、第二阶段&#xff1a;计算机—计算机网络&#xff08;20世纪60年代&#xff09; 3、第三阶段&#xff1a;开放式标准化网络&#xff08;20世纪70年…

​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​

软考-高级-系统架构设计师教程&#xff08;清华第2版&#xff09;【第20章 系统架构设计师论文写作要点&#xff08;P717~728&#xff09;-思维导图】 课本里章节里所有蓝色字体的思维导图

管理类联考——逻辑——知识+记忆篇——综合推理——考点+记忆

文章目录 整体目录大纲法汇总分类法记忆宫殿法绘图记忆法 考点记忆/考点汇总——按大纲 局部数字编码法归类记忆法重点记忆法歌决记忆法谐音记忆法理解记忆法比较记忆法 本篇思路&#xff1a;根据各方的资料&#xff0c;比如名师的资料&#xff0c;按大纲或者其他方式&#xff…

单元测试实战(四)MyBatis-Plus 的测试

为鼓励单元测试&#xff0c;特分门别类示例各种组件的测试代码并进行解说&#xff0c;供开发人员参考。 本文中的测试均基于JUnit5。 单元测试实战&#xff08;一&#xff09;Controller 的测试 单元测试实战&#xff08;二&#xff09;Service 的测试 单元测试实战&am…

鸿蒙开发|开启鸿蒙开发之旅-发工具下载安装、项目创建和预览

文章目录 一、鸿蒙开发使用语言二、下载开发工具三、安装开发工具四、新建项目五、项目启动 一、鸿蒙开发使用语言 鸿蒙OS开发支持多种编程语言&#xff0c;开发者可以根据自身技术背景和项目需求选择合适的语言进行开发。目前鸿蒙OS主要支持以下几种语言&#xff1a; Java&am…

掌握未来技术趋势,Python编程引领人工智能时代

掌握未来技术趋势&#xff0c;Python编程引领人工智能时代 摘要&#xff1a;Python作为一种高级编程语言&#xff0c;在人工智能领域中扮演着越来越重要的角色。本文将通过介绍Python编程的特点、应用场景及发展前景&#xff0c;展望Python未来的发展趋势&#xff0c;并结合代…

HarmonyOS真机调试报错:INSTALL_PARSE_FAILED_USESDK_ERROR处理

文章目录 1、 新建应用时选择与自己真机匹配的sdk版本2、 根据报错提示连接打开处理方案3、查询真机版本对应的**compileSdkVersion** 和 **compatibleSdkVersion** 提示3.1版本之后和3.1版本之前的不同命令&#xff08;此处为3.0版本&#xff09;4、根据查询修改参数5、连接成…

13.真刀实枪做项目---博客系统(页面设计)

文章目录 1.预期效果1.1博客列表页效果1.2博客详情页效果1.3博客登陆页效果1.4博客编辑页效果 2.实现博客列表页2.1实现导航栏2.2实现版心2.3实现个人信息2.4实现博客列表2.5博客列表页完整代码 3.实现博客正文页3.1引入导航栏3.2引入版心3.3引入个人信息3.4实现博客正文3.5博客…

Django模型层

模型层 与数据库相关的&#xff0c;用于定义数据模型和数据库表结构。 在Django应用程序中&#xff0c;模型层是数据库和应用程序之间的接口&#xff0c;它负责处理所有与数据库相关的操作&#xff0c;例如创建、读取、更新和删除记录。Django的模型层还提供了一些高级功能 首…

【机器学习Python实战】logistic回归

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习python实战 欢迎订阅&#xff01;后面的内容会越来越有意思~ ⭐内容说明&#xff1a;本专栏主要针对机器学习专栏的基础内容进行python的实现&#xff0c;部分…

PlantUML基础使用教程

环境搭建 IDEA插件下载 打开IEDA系列IDE&#xff0c;从FIle–>Settings–>Plugins–>Marketplace 进入到插件下载界面&#xff0c;搜索PlantUML&#xff0c;安装PlantUML Integration和PlantUML Parser两个插件&#xff0c;并重启IDE 安装和配置Graphviz 进入官网…