首页 > 其他分享 >git 随笔

git 随笔

时间:2023-06-05 21:56:22浏览次数:42  
标签:reset index git -- diff commit 随笔

git用的还是不熟练。

head/index/work directory
head是最新的commit
index是待提交的commit
work directory是写到磁盘的文件,还没add产生快照

git diff比较的是pwd工作目录的文件状态和commit(默认为HEAD)中的状态不同点
git diff --no-index [--] path path比较两个目录之间的不同,当给定两个目录的时候,自动切换到比较两个目录的内容。
git diff --cached比较staged到index中内容和commit(默认head)的不同,
git diff commit -- path当前目录中和指定commit间的区别
git diff commit1 commit2 -- path显示指定两个commit之间的区别

git diff可以用于产生补丁,供打补丁。

git add commit操作后发现有的有的修改有问题,或者修改没完成,想退回,重新修改,add+commit提交一个更合理的操作怎么弄?
这属于退回操作,可以用git reset
git reset和git revert, git rebase,git restore有什么区别吗 git revert添加一个节点,好说。
git reset pre-commit-id会将index中内容变成前一个commit-id的快照,并将当前branch的commit退到前面,但working-directory中内容不变,属于默认的mixed模式。
git reset pre-commit-id --hard 除了上面的修改,还会将working directory中内容覆盖掉。
git reset commit-id --soft即只修改当前分支的头为指定的commit,

有个问题,提交的commit, 没有branch头在记录他,但他又是一个最前端,是不是就变成了一个无法再生长的野头?git有将他保留吗?实测下来确实是没删除,
只要你记住了这个commit-id,是能reset/checkout 过去到的。不删的好处是,pull远端的时候,就更快。

rebase和reset的区别就体现在上面,rebase会删掉之后的头。

git restore主要是用来从git的index恢复文件到工作目录,

git checkout和git restore有一定相似性,都可以修改当前的工作目录,但checkout主要是从不同commit来恢复,git restore只是从当前head来恢复,可以恢复index,也可以恢复工作目录。不修改head。

标签:reset,index,git,--,diff,commit,随笔
From: https://www.cnblogs.com/zwlwf/p/17459016.html

相关文章

  • CVE-2023-2825-GitLab目录穿越poc
    GitlabCVE-2023-2825目录穿越漏洞前言昨天GitLab出了一个版本目录穿越漏洞(CVE-2023-2825),可以任意读取文件。当时我进行了黑盒测试并复现了该漏洞。“Anunauthenticatedmalicioususercanuseapathtraversalvulnerabilitytoreadarbitraryfilesontheserver......
  • GitOps 最佳实践(下)| 基于 Amazon EKS 构建 CI/CD 流水线
    了解了 GitOps的概念以及CI/CD流水线的架构,完成了构建GitOps风格的CI/CD流水线的前两部分,恭喜开发者们!我们一起在GitOps最佳实践的道路上已经实现了大半。接下来,我们一起看看构建CI/CD流水线最佳实践的后两个部分:通过IaC部署云基础架构在AmazonEKS集群上部署......
  • git入门
    下载仓库[email protected]:.../blog.git配置默认编辑器为vimgitconfig--globalcore.editorvim#--edit编辑配置gitconfig-e#编辑全局配置gitconfig--global-e配置保存帐号密码gitconfig--globalcredential.helperstore显示当前仓库改动状态......
  • 「闲话随笔」期末考试与高考集训
    「闲话随笔」期末考试与高考集训点击查看目录目录「闲话随笔」期末考试与高考集训推歌:《崩坏:星穹铁道》OP星间旅行。原唱是茶理理,四舍五入就是星尘。今天是真挺闲的。上午11点左右放假,下午4点就回来了......
  • git基本命令使用
    --global:全局配置,对所有仓库生效,用的比较多 用户名:gitconfig--globaluser.name"JasperYang"邮箱: [email protected]保存gitconfig--globalcredential.helperstore查询 gitconfig--global--list  创建仓库  本......
  • git已提交未推送的记录追加提交
    工作中,经常出现提交完代码之后,发现提交的代码还有遗漏的地方没改或者改错了。如果连续的提交,都是同一个需求改动的页面代码,就会导致连续提交记录中有很多无用的提交记录,显得git记录很乱。此时提交就不想保留上一次的提交记录。还有时,提交完代码之后,发现自己的提交记录描述不正确......
  • git 常规操作 及退回操作
    本地文件修改及撤销#对存在git仓库的目录中的文件修改,如果忘记修改了什么可以执行如下命令gitcheckout.#注意,这个操作不可逆,如果文件没有备份,执行之后是无法再恢复的gitadd.及其反向操作#添加当前目录下所有变更到暂存区gitadd.#反向操作,从暂存区撤回......
  • 【GIT】本地创建一个 git 仓库,并推送到远程仓库
    步骤1.在本地创建一个空文件夹如:我建一个map空文件夹2.gitinit在map目录下,将这个文件夹设置为git管理的本地仓库3.gitadd.复制一个文件到map目录下,然后执行gitadd.,这样就将文件存放到了暂存区4.gitcommit-m“firstcommit”将暂存区中存放的文件提交到git本地仓库5.在远端......
  • 记录:一次爬取gitee项目名称和url
    items:classGiteeItem(scrapy.Item):link=scrapy.Field()desc=scrapy.Field()passdb:importemojiimportpymysqlconnect=pymysql.connect(host='localhost',user='root',password='root',db='mindsa',......
  • IDEA连接gitLab或github
    找到本地文件夹.ssh/id_rsa.pub文件将里面的内容复制配置到gitlab或github中.......