初始操作gitinit一个本地仓库设置完成如果把文件夹删了再gitinit的话相当于另一个本地仓库了设置自己的姓名和邮箱:全局设定(设置完后本机全部生效)不局限于单个git文件夹标识我的本机:gitconfig--globaluser.name"wkx"本机电脑gitconfig--globaluser.name"wkx1"服务器电脑gitconfig--globaluser.email"1217345421@qq.com"本机邮箱gitconfig--globaluser.email"1661483886@qq.com"服务器邮箱本地公钥生成公钥:ssh-keygen-trsa-C12173
问题:我在暂存区添加了一些文件。我想暂时保存这些信息。怎么办?背景:有时我会执行一些更大的重构。只有提交完整的结果才真正有意义。在这次重构中,我也做了一些不相关的更改,我想独立提交。例如,重构重命名了一个方法。不相关的更改修复了同一类中另一个方法的一个参数的拼写错误。现在,假设当我意识到我忘记事先提交一个不相关的更改时,我已经将大部分文件添加到暂存区。将文件添加到暂存区需要时间,因为我会检查每个文件以确保我确实只提交了我想提交的内容。因此,简单地将它们全部从临时区域中移除并不是解决方案。我想做的是:保存暂存区的当前状态删除所有暂存文件暂存不相关的变更提交不相关的更改将保存的状态重新应用
我真的不喜欢git暂存区,它只会让我的生活不必要地困惑。是否可以禁用它以便所有已编辑的文件和新文件都在一个上下文中?这样gitdiff就会显示存储库和我的工作目录之间的差异(而且我不必再键入gitdiff--cached),这样gitci就会检查我的整个工作副本(而不仅仅是暂存的部分)。如果没有,替代方案(比如设置配置)让我看起来没有分期也很棒。我没有更改为不同DVCS的选项,我也不想学习喜欢暂存区。请不要张贴建议这些:(谢谢,-肖恩PS:我在superuser.com上问过这个问题,https://superuser.com/questions/192022/disable-git-
ProGit一书说暂存区只是一个列表或索引,表示当gitcommit完成时将提交哪些文件,现在名称index通常被称为“暂存区”。但是如果我们修改已经是repo一部分的文件foo.txt,并使用gitaddfoo.txt暂存它,再次修改文件,现在文件既是“暂存的”又是“已修改的”(如gitstatus中所示),如果我们提交,“暂存的”版本将进入提交。第二次编辑不会进入。那么,如果“暂存区”只是一个索引——一个文件列表,它如何跟踪第一次编辑的内容呢? 最佳答案 索引是准备提交的工作目录的View。可以看成是pre-commit状态,并
git本文适用于Ubuntu20.04+gitversion2.25.1 暂存区存在的意义 问:那么为什么要在“工作目录”和“版本库”之间添加“暂存区”呢?直接从“工作目录”到“版本库”不香吗? 答:保证提交的原子性,即每一个提交都是由多个文件的修改组成,而且这个提交是原子性的,要么这些修改全部成功,要么全部失败。原子性提交使得把项目整体还原到某个阶段或者时间点变得极为简便。 git常用命令初始化:gitconfig--globaluser.namexxx:设置全局用户名,信息记录在~/.gitconfig文件中gitconfig--globaluser.emailxxx@xxx
git本文适用于Ubuntu20.04+gitversion2.25.1 暂存区存在的意义 问:那么为什么要在“工作目录”和“版本库”之间添加“暂存区”呢?直接从“工作目录”到“版本库”不香吗? 答:保证提交的原子性,即每一个提交都是由多个文件的修改组成,而且这个提交是原子性的,要么这些修改全部成功,要么全部失败。原子性提交使得把项目整体还原到某个阶段或者时间点变得极为简便。 git常用命令初始化:gitconfig--globaluser.namexxx:设置全局用户名,信息记录在~/.gitconfig文件中gitconfig--globaluser.emailxxx@xxx
我创建了一个新的存储库,然后运行gitadd-A。然后我注意到有一个文件夹包含大约100个不应该包含的文件,所以我将它添加到.gitignore。我现在如何清除暂存区,以便我可以再次添加我的所有文件,同时考虑更新的.gitignore? 最佳答案 在#git中,你说你无意中添加了一个本应被忽略的目录,所以运行gitrm--cached-rdirectory-name从索引中递归地删除以directory-name为根的树。不要忘记更新.gitignore! 关于git-如何从暂存区中
假设我有一个名为a.txt的文件。我将它添加到暂存区,然后对其进行修改。怎么才能恢复到添加时的样子呢? 最佳答案 Git2.23之前:gitcheckouta.txt从Git2.23开始:gitrestorea.txt如果您键入gitstatus,Git会告诉您这一点。Git2.23之前:#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)##modified:a##Changedbutnotupdated:#(use"gitadd..."toup
我正在努力恢复我的工作。我愚蠢地执行了gitreset--hard,但在此之前我只执行了getadd.而没有执行gitcommit。请帮忙!这是我的日志:MacBookPro:apiuser$gitstatus#Onbranchmaster#Changestobecommitted:#(use"gitresetHEAD..."tounstage)#modified:.gitignore...MacBookPro:apiuser$gitreset--hardHEADisnowatff546faaddednewstrucutureforapi在这种情况下是否可以撤消gitreset--ha
如果你想将一个提交移动到暂存区-那就是取消提交并将其中的所有更改移动到暂存区(有效地将分支置于它之前的状态commit)-你是怎么做到的?或者这是您做不到的事情?我所知道的最接近的做法是将提交中更改的所有文件复制到其他地方,将分支重置为您尝试移动到暂存区域的提交之前的提交,移动将所有复制的文件放回存储库,然后将它们添加到暂存区。它有效,但它并不是一个很好的解决方案。我希望能够做的就是撤消提交并将其更改移至暂存区。可以吗?如果是这样,怎么做到的? 最佳答案 gitreset--softHEAD^这会将您的索引重置为HEAD^(之前的提