Git命令语句

2023-11-03

一、关于Git

1、Git介绍

Git是一个开源的分布式版本控制系统,用于敏捷高效的处理任何或大或小的项目。

Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。

版本控制:版本控制是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。

团队协作:从单兵作战转为团队开发。

2、Git对比SVN

1、SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而工作的时候都是用自己的电脑,所以首先要从中央服务器得到最新的版本,然后工作,完成工作后,需要把自己的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作。

2、Git是分布式版本控制,没有中央服务器,每个人的电脑就是一个完整的版本库,工作的时候不需要联网(因为版本就在自己电脑上),可以离线工作。

二、Git常用命令(上传至远程库前的操作)

1)设置用户签名(主要为了区分不同开发人员)

git config --global user.emalil "your@example.com"
git config --global user.name "Your Name"

2)初始化本地库

#git 初始化命令
git init

文件夹内会多一个.git文件(只有当一个文件夹被git管理以后,我们才可以使用git的功能去做版本管理)

3)显示当前文件夹下的所有内容:ls -a

查看文本:cat+空格+文本名称

4)添加到暂存区:git add空格+文本名称  ( git add . 表示将主分支master上所有文本添加到暂存区)

5)查看当前目录的状态:git status

6)从暂存区删掉目标文件:

git rm --cached+空格+文本名称

7)将暂存区的文本提交到本地库

git commit -m "备注"

8)查看提交的历史记录

git log

9)已经上传到本地库,但是文本需要修改

git reset --hard HEAD^  //退回一次
git reset --hard HEAD^^ //退回两次

10)文本修改后发现不如不改,想回到原来版本

先通过git reflog找到之前版本的指针数据
然后用git reset --hard+空格+指针数据

 (git reflog可以查到本地库所有操作记录)

11)从本地库回到暂存区(修改备注):git reset --soft HEAD

12)撤销上一个版本的提交,功能与9相同,但是操作方式不同

git revert HEAD //当前版本

13)git revert与git reset的区别

git revert HEAD指从当前版本撤销,版本指针继续往前移生成一个新的指针

git reset HEAD^指直接撤回,版本指针后移,直接找到原来版本

14)分支

创建新分支
git branch+空格+分支名称

查看分支
git branch

*后面的分支名称表示当前所在分支

切换分支
git checkout+空格+分支名称

注意:分支的指针为HEAD,master依然指向主分支,两分分支互不干扰,但这也意味着如果要使分支与主分支有关联,就必须将主分支与分支合并

分支与主分支合并
1、切换至master分支
2、git merge+空格+分支名称

合并之后删除原分支
git branch -d+空格+分支名称

 三、本地库上传至远程库

1)让本地库知道远程库的地址

git remote add+地址名字(随便起)+从github获得的地址

2)查看远程库地址(该地址指从github获得的地址)

git remote -v

3)删除远程库地址:git remote remove+空格+地址名字(1步中自己起的那个地址名字)

4)将本地库上传至远程库:git push+空格+地址名字+master

(将git主分支推到远程库主分支,尽量不要直接在远程库上修改代码)

git push -u+空格+地址名字+master 此后该本地库上传至该远程库直接写:git push

5)拉取远程库至本地库:git pull+空格+master

6)将整个远程仓库全部克隆:git clone+空格+从github获得的地址

7)将分支推送至远程库:git push+空格+地址名字+本地分支名字:远程分支名字

8)将远程分支拉至本地库:git pull+空格+地址名字+远程分支名字

9)建立分支:git checkout+空格+分支名称

10)删除远程库分支(推送空分支):git push+空格+地址名称+空格:远程分支名称

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git命令语句 的相关文章

  • 在 git 中记录前 10 个

    两个问题 如何从头到尾显示 git 中的前 10 个提交 无分行 如何指定提交索引并记录它 显示第二个或第三个 我知道 git 使用父级来链接提交 很容易从头到尾记录提交 喜欢 git log HEAD 10 但我需要从头到尾查询 可以吗
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • 如何从父克隆中过去的提交中获取 git 子模块的关联提交 ID?

    有没有一种方法 除了实际检查父提交之外 还可以根据父克隆中的提交 ID 确定子模块的 SHA 1 提交 ID 我知道我能找到现在与 SHA 1 关联git submodule 这是一个例子 我有一个带有单个子模块的克隆foo上个月情况发生了
  • 如何在 git 交互式 rebase 中将提交与下一个提交合并?

    git rebase i允许通过以下方式将提交与前一个提交合并squash or fixup 这两个选项都需要至少一次提交pick ed 当一个人想要使用第一个提交但丢弃其提交消息时 情况怎么样 换句话说 如果我希望第一个提交与后续提交合并
  • 避免使用 git 和 make 重新编译

    我在 git 中有两个开发分支 并且经常需要在两者之间进行更改 然而 真正令人沮丧的是 每次我在 git 中更改分支时 整个项目都会重新构建 因为某些文件的文件系统时间戳会发生变化 Ofc makefiles 配置为将项目构建到两个不同的构
  • Git 分支之间未跟踪的文件

    我一直在这里寻找答案 看来我可能只是对 git 分支应该如何工作做出了错误的假设 我有我的master分支 我创建了一个名为的功能分支profiles我正在对个人资料进行一些特定的工作 在处理配置文件时 我更改了 5 或 6 个文件 并添加
  • git log --oneline 提供在管道或重定向到文件时丢失的 HEAD 信息

    当我执行没有管道或文件重定向的 git log oneline 命令时 它会提供有关 HEAD 位置和分支的信息 下面示例中的 master git log oneline color never 8bc8511 HEAD gt day 2
  • 如何更改全局 git 设置以在拉取期间进行 git 合并

    目前 我的全局设置设置为在 git pull 期间执行变基操作 我希望它默认将其更改为 git merge 如何更改此设置 TL DR git config global pull rebase false 有点细节 Git 使用配置pul
  • 无法快速删除 Git 中的许多文件

    我删除了 Git 分支中的 777 个文件新功能 by rm example 我愿意承诺 Git 要求我手动删除每个已删除的文件 git rm file 对于所有名称不相似的 777 个文件 编写上述命令将花费大量时间 如何删除我的 Git
  • Git 从 Netbeans 推送到 Gerrit

    我在将提交从 Netbeans 7 4 在 Linux 上 推送到 Gerrit 进行审查时遇到问题 我的git配置 core repositoryformatversion 0 filemode true logallrefupdates
  • 未签出...捆绑安装无法修复帮助!

    https github com intridea omniauth git at master is not checked out Please run bundle install Bundler GitError 那我该怎么办 捆绑
  • Mac 到 EC2 - 源代码控制三角问题 - git?同步?啥?

    我有一个日常 EC2 实例 事实上 请注意那些更改IP每次重新启动它们时 都会出现另一个问题 实例上有一个文件夹 我在文件夹 mysql express 等 中有一个简单的 比如说 节点项目 比方说 这是一个网站 那么在我的 Mac 上进行
  • 无法在 git 上获取 Http 工作

    我在拇指驱动器上使用 gitbash 作为 git 我的防火墙阻止了我 并且想设置我的 git 以进行 http 访问 我使用 github 并且已经看到了有关如何执行此操作的各种信息 但我还不够了解 无法让它为我自己工作 我在 php i
  • 显示 GitHub 上二进制文件的文本差异

    我正在尝试使用 Git 和 GitHub 同步多个应用程序配置文件 这些是以二进制格式存储的 XML 或 plist 文件 例如 一个键盘大师 kmsync file https forum keyboardmaestro com t pl
  • Git 只获取一个目录

    我有一名开发人员负责一个文件夹 另一名开发人员负责另一个文件夹 我想使用特定文件夹更新产品 我正在寻找类似的命令 cd myproject git pull myfolder 并期望只有 myfolder 会被更新 是否可以 好吧 我重新表
  • 如何使用 Github API 与企业进行搜索

    我正在尝试搜索存储库 但我似乎无法通过 github 企业版找到答案 我已尝试以下操作但没有结果 有什么建议么 curl i http my domain com api v3 repositories If Modified Since
  • 是否可以使用“最小”算法进行交互式添加?

    当从快照计算变更集时 Git 并不总是正确选择块边界 git diff has a diff algorithm允许在这方面进行一些调整的选项 git diff minimal有时会给出比git diff alone 有没有办法获得相同的优
  • 如何修复 Centos 上的 Git Segmentation 错误

    我收到分段错误错误 无法在服务器上提取代码 Centos 7 这就是我遇到错误的方法 通过使用以下命令来验证我的服务器是否使用 bitbucket 进行身份验证 ssh T email protected cdn cgi l email p
  • 如何让“git status”始终使用短格式?

    我想要git status始终使用短格式 git status short M file1 M dir file2 file untracked3 dir file untracked4 似乎不存在这方面的配置选项 并且git config
  • Git 查找第一个非本地提交

    有关的 列出尚未推送到源的 Git 提交 https stackoverflow com questions 3080509 list git commits not pushed to the origin yet git rev par

随机推荐

  • Servlet方法详解

    Servlet Servlet是SUN公司提供的一套规范 名称就叫Servlet规范 它也是JavaEE规范之一 使用JavaEE的API 目前在Oracle官网中的最新版本是JavaEE8 Servlet是一个运行在web服务端的java
  • Hello之C&Java&Python

    前言 原来是java程序员 最近学习了一段时间发现 java只关注业务逻辑的开发 封装了很多的东西 导致底层的许多东西不是太了解 突然某一天 灵光凸现 既然语言都是相通的 我是不是可以利用java的知识来类比学习其他的语言呢 哈哈 学习语言
  • No converter for [class com.xxx.utils.Result] with preset Content-Type ‘application/octet-stre

    java 导出功能 出现该错误可能原因是 controller层有返回值 解决方法 将返回值设置成void 如果非要设置返回值 额 我也没找到解决方法 谁要是会的话 下面评论一下 感谢
  • 代码存储位置与执行位置

    RT1052系统包含的存储器 存储器 容量 访问速度 访问方式 特性 SPI NorFlash 标配32MB 5 FlexSPI外设 FLASH 板载外部存储器 掉电保存 SDRAM 标配 32MB 4 SEMC 外设 DRAM 板载外部存
  • rsync远程同步

    目录 一 概念 二 rsync 同步源的过程 1 下行同步 2 上行同步 三 rsync 的特性 四 rsync同步之下行同步实验演示 五 rsync同步之上行同步 结合inotify监控的实验演示 六 使用rsync来实现快速删除大量文件
  • MyBatis02:MyBatis的CRUD操作及配置解析

    回顾上一章 MyBatis01 第一个程序 namespace 将上面案例中的UserMapper接口改名为 UserDao 将UserMapper xml中的namespace改为为UserDao的路径 再次测试 结论 配置文件中name
  • vcruntime140.dll缺失的解决方法分享,快速修复vcruntime140.dll文件

    当你在运行某些应用程序或游戏时遇到vcruntime140 dll缺失的错误提示 可能会导致应用程序无法启动或执行 vcruntime140 dll是与Microsoft Visual C Redistributable相关的一个重要系统文
  • win10安装破解软件提示病毒并且删除安装软件,暂时关闭安全检查

    1 左击屏幕左下角 找到系统设置 2 点击进入 更新和安全 3 点击 windows 安全 再 点击 病毒和威胁防护 4 点击设置 5 关闭 实时检查 6 安装完毕后一定重新开启 否则后果自负
  • PMOS开关电路

    本次项目上需要实现的功能是利用AO3401 PMOS设计一个开关电路 实现一款设备的开关控制 被控设备12V供电 供电电流小于3A即可 且为了提高响应速度 使流过该设备的电流尽可能的大 该设备内阻大约为6ohm AO3401产品参数 VDS
  • HTTP超详细教程

    1 HTTP协议 1 1 HTTP简述 HTTP全称为超文本传输协议 是一种应用比较广泛的应用层协议 那何为超文本 超文本指的是传输的内容不仅仅是文本 比如 html css javaScript 等数据 还可以是一些其他的资源 比如图片
  • AI修复人像

    一 前言 最近闲来无事 翻了翻以前的老照片 看着多年前的老照片 感慨万千 仿佛又回到了以前的青春岁月 只可惜青春易逝 无法重来 意气风发 头角峥嵘的画面只能永远地留存在相片之中了 只叹当时没有多拍几张照片留作纪念 可惜当时设备也不好 照片效
  • 【Linux】低级IO

    需要云服务器等云产品来学习Linux的同学可以移步 gt 腾讯云 lt gt 阿里云 lt gt 华为云 lt 官网 轻量型云服务器低至112元 年 新用户首次下单享超低折扣 目录 一 文件的概念 二 C语言文件操作回顾 三 使用系统调用进
  • 山大网安靶场实验平台项目—个人记录(一)

    系列文章专栏地址 山东大学网络安全靶场实验平台 本期内容 完成项目框架设计 学习vue和element ui 了解基本语法 编写前端页面 组件 学习springboot为写后端作准备 项目框架设计 time 3 days 首先我们这个项目是
  • Vue3功能实战 —— 动态路由、路由签权、动态组件 使用示例

    前期回顾 Vue3 TS Vite 大屏可视化 项目实战 vue3可视化大屏 彩色之外的博客 CSDN博客大屏可视化项目实战 vue3可视化大屏https blog csdn net m0 57904695 article details
  • zabbix6.2.4企业微信群机器人告警

    zabbix6 2 4企业微信群机器人告警 基于https blog csdn net stars moon1024 article details 123042369调试 创建媒介 脚本如下 var Wechat token null t
  • linux 怎么样复制文件夹内所有文件到另一个文件夹?

    cp Rf home user1 root temp 将 home user1目录下的所有东西拷到 root temp 下而不拷贝user1目录本身 即格式为 cp Rf 原路径 目的路径
  • 集成底座双K8S集群扩展升级方案

    集成底座方案是应用于企业信息化建设的集成整合阶段 通过建立统一 标准 柔性 可复用 可扩展的IT架构 解决企业信息化建设过程中缺乏整体规划 集成整合难度大 安全管控不到位等问题 强化企业信息化的架构建设 集成整合 数据治理 安全管控的水平
  • 腾讯测开笔试题

    测开笔试题分享 一个数组里面有混序的正负数 按照以下要求重新排列 1 按照正负间隔的顺序排列 2 同一个符号的数相对顺序不变 3 若某一个符号的数较多 按原顺序放在最后 例如输入 1 2 3 7 9 5 3 4 7 8 11 3 2 期望输
  • .Net WinForm 中关于输入法打开却无法输入中文总结

    根据前面的兄弟们解决方法我做了下总结 希望对以后遇到此问题的同行提供点帮助 大家如果还有好的方法也请回复提供我 共同学习 出现这个问题时我的输入法设置为 注意我这里使用简体中文美式键盘 然后我删除了简体中文美式键盘 添加了英语 美国 美式键
  • Git命令语句

    一 关于Git 1 Git介绍 Git是一个开源的分布式版本控制系统 用于敏捷高效的处理任何或大或小的项目 Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件 版本控制 版本控制是一种在开发