常用Git命令

2023-05-16


查看文件当前状态:git status
查看文件提交信息:git log
将未被追踪的文件(工作区)提交至暂存区:git add (文件名)
所有修改的文件提交至暂存区:git add
将暂存区文件提交至版本库:git commit -m "(描述)"
跳过git add命令直接将工作区的文件提交到版本库:git commit -am "(描述)"

查看git版本:git --version
初始化git仓库:git init
配置git:git config --global user.name (name)
git config --global user.email (email)
查看git的配置情况:git config --list

Git中文件的4种状态
untracked(Untracked commit):未被追踪
Modified:表示工作区修改了某个文件但是还没有添加到暂存区
Staged:表示工作区修改的文件添加到了暂存区但是没有提交到版本库
Committed:表示数据被安全的存储在本地库中

Git的三层结构
woking directory:工作区
staging index:暂存区
git directory(Repository):版本库

常用描述
modify [文件名]:修改文件。
add [文件名]:添加文件。

 

1. 文件已经都提交了,通过 git status 查看也是干净的。
2. 然后修改了文件,未添加,可以直接通过 git checkout -- filename 直接变回修改前。
3. 也就是说,即使 commit 了。checkout 也可以拉取暂存区。
4. 想变更为最后一次提交,在未添加的时候,可以直接使用 git checkout -- filename 拉取,不需要用 git reset HEAD -- filname 就可以,否则就要使用。如果是其他提交版本,则需要 git reset 版本号 -- filename, 然后再 git checkout -- filename ,再使用 git status 发现已经存在于暂存区,记得 commit。 

 

1.git checkout -- filename 是将暂存区filename内容拉到工作区,
按照你的场景当文件被提交了,工作区是干净的。然后修改工作区的file,再去执行git checkout -- filename 即将filename拉到工作区,相当于撤销工作区对filename的修改。
2.git reset HEAD -- filename 相当于把HEAD指针指向的版本的filename文件拉到暂存区。
按照你的场景当文件被提交了,工作区是干净的。然后修改工作区的file 当执行了git add 后,暂存区的状态就改变了,此时执行git checkout -- filename 工作区的修改还是跟暂存区一致。 想撤销工作区的修改,需要先使用 git reset HEAD -- filename 将版本库的filename 文件来回到暂存区,相当于 撤销上次的git add 对暂存区的修改, 然后再执行git checkout -- filename  将从版本库拉到暂存区的文件再拉到工作区。

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

常用Git命令 的相关文章

  • git fetch 的默认远程

    如果我在当地的分支机构not跟踪任何远程分支 我发出命令 git fetch 鉴于我定义了几个遥控器 GIT DIR config 从哪个远程获取 我试图从man page https www kernel org pub software
  • 编辑 git patch 给出“您编辑的块不适用”

    我正在交互地添加一个文件 git add template panels panel reports php p diff git a template panels panel reports php b template panels
  • 关闭 Sublime Text 3.2 中的 git 集成

    如果我想关闭 Sublime text 左侧装订线中的 GIT 集成 又名史莱姆绿线 我只需将其切换为 false 26 show git status false 但是 当在首选项中进行设置时 我收到错误 尝试解析设置时出错 意外的字符
  • git difftool 进行目录比较?

    是否可以使用 git difftool 命令来打开已更改文件和暂存 检查文件之间的目录比较 因此 理想情况下 如果 2 个文件已更改 它们将是唯一显示的 2 个文件 但在目录比较中 我读过关于让 git 并行给出所有文件差异的帖子 所以像
  • git 别名:多个命令、可变参数

    我经常发现自己输入以下内容 git push remote1 branch1 branch2 tag1 tag2 tag3 git push remote2 branch1 branch2 tag1 tag2 tag3 我更喜欢一个别名 我
  • 从另一个分支或从 master 创建 Git 分支?

    所以我是 Git 新手 我最近从存储库中提取了主分支的新版本 我创建了一个branch 1 获取某个功能并将其推送到存储库并创建拉取请求 现在我创建了一个新的branch 2 具有另一个功能 但由于我的拉取请求尚未合并 再次拉取 maste
  • 哪些Git命令无法在本地执行?

    当我和同事谈论 Git 时 我告诉他们 一旦本地存储库初始化 只有三个 Git 命令不能在不访问远程存储库的情况下执行 假设origin当然 不在本地计算机上 git fetch http www kernel org pub softwa
  • git receive-pack 以 0000 停止

    我对 git 很陌生 目前正在尝试在 opensuse 上使用 gitolite 和 trac 设置环境 我设法使用来自的脚本迁移旧的 svn 存储库http john albin net git git svn migrate http
  • GIT Rebase 协作的分支?

    阅读本文后 重新设置基点以收集从主分支到我的功能分支的更改是有意义的 Git 工作流程以及 rebase 与合并问题 https stackoverflow com questions 457927 git workflow and reb
  • 用于跟踪远程分支的 Git 子模块

    我正在尝试使用 git 子模块将 10 多个存储库聚合到一个结构中 以便于开发 它应该克隆模块并签出分支 相反 模块以分离头模式检出 git clone email protected cdn cgi l email protection
  • 将远程存储库导入为具有完整历史记录的子目录

    我想将远程存储库作为具有完整历史记录的子目录进行合并和解耦 有多种方法和问题可以实现这一点 我的第一次尝试是使用subtree但它似乎没有重写文件的历史记录 所以我无法查看合并存储库的历史记录 接下来的尝试是手动合并它 就像 Seth Ro
  • 用于维护项目扩展分支的 Git 工作流程?

    我们在 GitHub 上分叉了一个 OSS 项目 并向其添加一些自定义扩展 我们希望将我们所做的一些更改发送回原始项目 错误修复等 但其他更改是原始项目维护者目前不感兴趣的功能扩展 我正在尝试找出管理这种情况的最佳工作流程 我希望我们的主分
  • 如何在 git 中使用我的更改进行合并?

    在 git 中合并时如何强制 我的更改 有人将所有 bin 目录放入 git 中 现在我遇到了可怕的合并冲突 现在它说 当你解决了这个问题后 运行 git rebase 继续 如果你 宁愿跳过这个补丁 而是运行 git rebase ski
  • 无法重新索引 magento 1.7.0.2 卡在“处理”上

    我的 magento 索引中有九分之七停留在 处理 状态 我需要重新索引它们才能正确显示我的网站 我通过 ftp 访问我的 var locks 并删除其中的两个文件 但是当我刷新索引页时 它们只是重新出现 index process 3 l
  • 尝试匿名克隆 github 存储库时权限被拒绝

    作为匿名用户 github 上没有存储公钥 我尝试通过以下方式克隆公共存储库 git 网址 但它失败了 git clone email protected cdn cgi l email protection mikehaertl phpw
  • 你遇到过哪些 git 陷阱?

    我遇到的最糟糕的情况是 git 子模块 我在 github 上有一个项目的子模块 该项目无人维护 我想提交补丁 但无法提交 所以我分叉了 现在子模块指向原始库 而我需要它指向 fork 因此 我删除了旧的子模块 并将其替换为同一提交中新项目
  • 单个分支的 Git 导出

    我在本地的 git 存储库上工作 它有各种分支 例如开发分支 一些用于实验更改的分支等等 当然还有主分支 我想设置一个公共 嗯 确实是一个局域网的东西 最好说 共享 存储库来仅包含主分支 如何导出该分支以便我可以将其复制到目标文件夹 谢谢
  • git:复制一个版本来玩一下

    在开发应用程序时 我希望在某个时候拥有一份单独的工作副本 以便尝试进行一些更改 这些更改并不意味着要进行 只是玩玩 尝试各种可能性 是什么 best 如何做到这一点 我发现了以下可能性 但想得到比我更有 git 经验的人的建议 我可以用gi
  • Sublime 中的文件内容不会因 Git 分支更改而更改

    如果在 Sublime text 2 中打开一个文件 然后切换到终端中对该文件进行更改的分支 则在通过单击编辑器选择编辑器之前 文件内容不会在 Sublime text 2 中更新 如何自动神奇地改变它 Sublime Text 没有任何内
  • git 显示更改了 0 次插入(+)、0 次删除(-)的文件

    很多时候 当我运行 git diff shortstat 命令时 它会输出以下内容 17 files changed 0 insertions 0 deletions 即使没有插入或删除 文件怎么可能发生变化 如果项目中某些文件的文件权限已

随机推荐

  • 数据结构学习笔记1

    程序设计 61 数据结构 43 算法 谈谈算法 数据结构与算法是 好基友 xff0c 如果单独谈数据结构 xff0c 或者单独谈算法是没什么意义的 来一个牛叉的算法吧 xff01 计算1 43 2 43 3 43 4 43 100 xff0
  • Oracle面试题附带答案

    1 你要对操纵Oracle数据库中的数据 下列哪个选项表示Oracle中select语句的功能 xff0c 并且不需要使用子查询 xff08 C xff09 A xff0e 可以用select语句改变Oracle中的数据 B xff0e 可
  • C结构体中数据的内存对齐问题

    转自 xff1a http www cnblogs com qwcbeyond archive 2012 05 08 2490897 html 32位机一般默认4字节对齐 xff08 32位机机器字长4字节 xff09 xff0c 64位机
  • 解决codeblocks无法调试的问题

    错误提示 xff1a ERROR You need to specify a debugger program in the debuggers 39 s settings For MinGW compilers it 39 s 39 gd
  • 求出现在字符串1而没有出现在字符串2中的字符

    编写一个函数 xff0c 它的功能是将未在字符串s中出现 xff0c 而在字符串t中出现的字符 xff0c 型参一个新的字符串放在u中 xff0c u中的字符按原字符的顺序排列 xff0c 但要去掉重复字符 至少会想到去考察t xff0c
  • 什么情况下需要建立索引? 索引的作用?为什么能够提高查询速度?(索引的原理) 索引有什么副作用吗?

    https www cnblogs com Berryxiong p 6249427 html 为什么能够提高查询速度 xff1f 索引就是通过事先排好序 xff0c 从而在查找时可以应用二分查找等高效率的算法 一般的顺序查找 xff0c
  • 100w测试数据,为什么加了索引查询反而变慢了?

    建表 xff1a create table tb test fval varchar 50 插入测试数据 xff1a DELIMITER CREATE DEFINER 61 96 root 96 64 96 localhost 96 PRO
  • linux环境下使用gdb调试c和c++ 学习笔记

    第二十三课 xff1a GDB简介 哔哩哔哩 bilibili gdb调试 xff1a 1 gcc a c b c c c o app g g 编译器会保留函数名和变量名 2 启动gdb gdb 可执行程序的名字 xff08 gdb app
  • ubuntu下eth0网卡信息不见了

    ubuntu终端下命令ifconfig的问题解决 问题一 ifconfig之后只显示lo 没有看到eth0 问题二 ifconfig之后显示eth0 xff0c 但是没有显示静态IP地址 xff0c 即无inet 地址 广播 掩码 问题三
  • 计算机指令

    指令系统的设计原则包括 xff1a 完备性 xff1a 该有的都要有 有效性 xff1a 简洁 加速常用操作 没有歧义 规整性 xff1a 对称 均匀 一致 xff08 简单源于规整 xff09 兼容性 xff1a 之前 之后的都能用 下面
  • shell基础学习笔记1

    shell是什么 xff1f shell是一个命令解释器 xff0c 他为用户提供了一个向linux内核发送请求以便运行程序的界面系统级程序 xff0c 用户可以用shell来启动 挂起 停止甚至编写一些程序 其实就是输入命令的那个交互界面
  • linux达人养成学习笔记1

    2 4 分区之分区设备文件名与挂载 1 swap分区 xff0c 没有挂载点 xff0c 是文件系统类型 xff08 交换分区 xff0c 电脑内存 lt 4G xff0c 可分为内存2倍 xff1b gt 4G分同等大小 xff09 2
  • shell编程之变量学习小结

    在Bash中 xff0c 变量的默认类型都是字符串型 变量的分类 1 用户自定义变量 xff1a 变量可以自定义 xff0c 但是对系统生效的环境变量名和变量作用是固定的 2 环境变量 xff1a 这种变量中主要保存的是和系统操作环境相关的
  • 程序员的自我修养

    1 Provide Options Don 39 t make lame Excuses 提供各种选择 xff0c 不要找蹩脚的借口 2 Don 39 t live with Broken Windows 不要容忍破窗户 3 Be a ca
  • 二阶三阶四阶魔方旋转公式

  • 什么是回调函数?

    为了弄明白这种函数的奥妙 xff0c 首先提出三个问题 xff1a 1 回调函数是什么东西 xff1f 2 回调函数怎么开发 xff0c 怎么使用 xff1f 3 回调函数的作用 xff0c 应该在什么情况下使用 xff1f 带着问题来学习
  • Toastmasters会议小结

    第四战队第二次会议记录 舰队分享 P1 Ice Breaker Speech 分享人 xff1a 邱爱珍 爱珍结合自己的P1演讲经验 xff0c 从以下五个方面给出相应的意见 Book time to start 尽早在系统中预约自己的第一
  • 如何做好自己的时间管理

    认识时间障碍掌握时间管理的原则掌握各种有效管理隔个人时间的工具 没有目标谈什么时间管理 xff1f xff1f xff1f 今天需要完成的事情 这个周需要完成的事情 这个月需要完成的事情 时间管理的错误观念 时间管理只是常识 xff0c 只
  • 参考别人的面试总结:linux C/C++服务器后台开发面试题总结

    参考别人的面试总结 xff1a linux C C 43 43 服务器后台开发面试题总结 参考博客 xff1a http www cnblogs com nancymake p 6516933 html 基础语言知识方面 xff1a 1 使
  • 常用Git命令

    查看文件当前状态 xff1a git status 查看文件提交信息 xff1a git log 将未被追踪的文件 xff08 工作区 xff09 提交至暂存区 xff1a git add 文件名 所有修改的文件提交至暂存区 xff1a g