首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

headresetrevertrebase代码回滚全解:git提交记录的背后原理

reset,revert都有撤销、回退的意思,但却各有千秋,区别还是很大的,所以该使用哪种命令一定要结合实际情况来决定。搞清这些,还是得多学习下git基础知识。...本地仓库(.git):在工作区中有个隐藏目录.git,这就是 Git 本地仓库的数据库。工作区中的项目文件实际上就是从这里签出(checkout)而得到的,修改后的内容最终提交后记录到本地仓库中。...如下图,假设只有一个分支:还需了解的术语HEAD:这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交Index:index也被称为staging area,是指一整套即将被下一个提交的文件集合...如此一来,Git 就可以在需要的时候重现此次保存的快照。然后会把当前版本的文件快照保存到 Git 仓库中(Git 使用 blob 对象来保存它们),最终将校验和加入到暂存区域等待提交。....htmlgit中reset和revert的区别是什么 https://www.php.cn/tool/git/485052.htmlGit恢复之前版本的两种方法reset、revert(图文详解) https

96921

版本控制、SVN、Git和Github

简而言之: 中央服务器好比是一个图书馆 你改一本书,必须先从图书馆借出来(checkout) 然后回到家自己改,改完了,再放到图书馆(commit) 一些术语 源代码库(repository):源代码统一存放的地方...维基百科 - Git 学习资源介绍 Git教程 - 廖雪峰 Pro Git git - 简明指南 猴子都能懂的GIT入门 Git 简介 是什么 Git 也是一个版本控制管理软件 有什么用...会要求具有用户名和邮箱的参数选项 可以通过 git config 命令配置一下用户名和邮箱 git log gitk 总结:操作 Git 的基本工作流程就是先修改文件,然后执行 git add 命令。...# 重置暂存区的指定文件,与上一次commit保持一致,但工作区不变 $ git reset [file] # 重置暂存区与工作区,与上一次commit保持一致 $ git reset --hard...# 重置当前分支的指针为指定commit,同时重置暂存区,但工作区不变 $ git reset [commit] # 重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit

85920
您找到你想要的搜索结果了吗?
是的
没有找到

git操作这一篇就够用了

暂存区:暂时存储的区域,在git中,代码无法直接从工作区提交到仓库区,而是需要先从工作区添加到暂存区,然后才能从暂存区提交到仓库区。暂存区的目的是避免误操作。...git仓库git init会在当前目录生成一个隐藏文件夹 .git 不要去修改这个文件夹下的任意东西。...~0:当前提交 关于参数 --hard的解释 git reset 的参数可以是以下三个值: git reset --soft 版本号 :只重置仓库区 git reset --mixed 版本号 :重置仓库区和暂存区...【默认】 git reset --hard 版本号 :重置仓库区和暂存区和工作区。...remote add 仓库别名 仓库地址 git remote add why git@github.com:XXX/test.git 删除why这个别名 git remote remove why

56950

Xcode项目 Github连接协同开发研究和各种错误解决记载

git仓库最有名的就是github了,可以创建公有和私有库,不过私有库收费,大部分公司遇到收费还是绕道,coding和开源中国是免费私有库的大家可以去选择下。...iOS传入github的大体分为二种: 第一种:有git源 第二种:没有git源 转入正题: 上传项目类型判断: ?...源 在终端输入如下指令: touch README.md //新建说明文件 git init //在当前项目目录中生成本地git管理,并建立一个隐藏.git目录 git add . .../chape/test.git //添加到远程项目,别名为origin git push -u origin master //把本地源码库push到github 别名为origin的远程项目中, 确认最后一句话遇到...解决办法: git push -f origin master (-f -force的意思)暴力---- 然后你可以刷新一下你的github库,你的工程就会出现里面了。

84420

Git 实战

- 在本地库移动HEAD指针 - 重置暂存区 hard: - 在本地库移动HEAD指针 - 重置暂存区 - 重置工作区 1.3.7 删除文件并找回 相当于建立一个快照,虽然删除了,但只要添加到暂存区...合并分支相当于把修改了的文件拉过来 git merge xxx 注意:合并分支的时候明确谁谁合并 我在a分支里面修改了。...合并到master,就先切换到master,然后合并b 删除分支 git branch -d 分支名 2.2.4 解决冲突 冲突的表现 冲突的解决 第一步:编辑,删除特殊标记<<< === 第二步...别名 分支名 1.1 创建远程库地址别名 git remote -v #查看远程地址别名 git remote add 别名 远程地址 例子:git remote add origin https...://xx 1.2 推送 开发修改完把本地库的文件推送到远程仓库 前提是提交到了本地库才可以推送 git push 别名 分支名 git push -u 别名 分支名 #-u指定默认主机 例子:git

57720

Git常用命令

git三区 工作区:写代码的地方 暂存区:临时存储 git add …的地方 本地库 :git commit 的地方 远程库:远程仓库 创建一个版本库 初始化仓库 git init 2.设置提交信息 git...重置暂存区 --hard 在本地库移动HEAD指针 重置暂存区 重置工作区 git branch 查看分支 git branch 分支名称 建立分支 git checkout...分支名称 切换分支 git merge 分支名 将当前分支与另一个分支合并 git branch -d 分支名 删除本地分支 git remote add 别名(origin ) 地址...为仓库地址取别名 git remote -v 查看别名 git remote remove 别名 删除别名 git rm --cached filename 从暂存区恢复出来 git...使用ssh协议登录,这样每次更新或提交时就不用输入用户名密码了 忽略 .gitignore 用编辑器创建这个文件 该文件内容就是你忽略的文件/目录 如 #下面是忽略的文件/文件名 .env vendor

28910

Git常用命令和多账号配置

,按提交次数排序 $ git shortlog -sn # 显示指定文件是什么人在什么时间修改过 $ git blame [file] # 查看某人提交记录 $ git log --author=[...# 重置暂存区与工作区,与上一次 commit 保持一致 $ git reset --hard # 重置当前分支的指针为指定 commit,同时重置暂存区,但工作区不变 $ git reset [commit...] # 重置当前分支的HEAD为指定 commit,同时重置暂存区和工作区,与指定 commit 一致 $ git reset --hard [commit] # 撤销工作目录中所有未提交文件的修改内容...你可以通过传递 --global 选项使Git 读或写这个特定的文件。 local(仓库级别) 位于 .git/config ,无论你当前在用的库是什么,特定指向该单一的库优先级最高。...:xxxx/xxx.git # 就是使用域名地址的别名来区分 git clone git@github:xxxx/xxx.git git clone git@gitlab:xxxx/xxx.git

73320

Git命令大全

$ git remote add # 修改远程仓库的别名 $ git remote rename # 删除指定名称的远程仓库...# 把已经提交的记录合并到当前分支 $ git cherry-pick 1 2 复制 # git add 把提交的文件的信息添加到暂存区中。...首先会执行 git fetch,然后执行 git merge,把获取的分支的 HEAD 合并到当前分支。 # 从远程仓库获取最新版本。...# 重置暂存区,但文件不受影响 # 相当于将用 "git add" 命令更新到暂存区的内容撤出暂存区,可以指定文件 # 没有指定 commit ID 则默认为当前 HEAD $ git reset [<...后面有一个点,意思是将你本地所有修改了的文件添加到暂存区 git commit -m"" 引号里面是你的介绍,就是你的这次的提交是什么内容,便于你以后查看,这个是将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中

95110

xcode svn commit is not under version control 和 git常用指令

然后svn 命令提交,之前使用svn命令提交图片的时候,是可以提交的,但是今天就算使用svn命令,还是提交不了:   截图: ?...原文链接:http://www.cnblogs.com/tandaxia/p/5235450.html 使用git把本地代码提交到github上步骤: 1、打开终端,进入提交的代码文件夹,如:cd /...diff 30、查看某个文件(如one.txt)当前修改过哪里(未add前):git diff one.txt 31、 想重置暂存区(即把上次add后还没commit的记录,重置到add前): git...35、合并代码,将其他分支代码合并到当前分支:git merge oneBranch   比如当前在master分支,则git merge oneBranch意思是将分支oneBranch的代码合并到...defaults write com.apple.finder AppleShowAllFiles -bool false; killall Finder //隐藏隐藏文件 //删除证书描述文件

1.1K20

源代码管理git的使用

按键盘上的 i 代表开始输入内容 输入完毕之后按 esc 然后按 :wq 所以: 如果以后在终端中提交最好在后面加上-m 、注意: git中的add和SVN中的add不太一样, SVN中只需要add...git中的简写称之为起别名 别名 & 日志 $ git config alias.st status $ git config alias.ci "commit -m" 、查看log git log...文件名 注意: GIt中的版本号是一个”40位“的哈希值, 而SVN中的版本号是一个递增的整数 配置带颜色的log别名 git config --global alias.lg "log --color...reset —hard HEAD^ 返回上一个版本 其中—hard代表强制重置 git reset —hard 版本号(只需要写前7位) ②未提交 git checkout 文件名 回退到上一次提交的版本....gitignore 注意: 配置忽略文件只需要到github上搜索.gitignore拷贝别人写好的代码即可 配置.gitignore一定要在和.git隐藏文件夹同一级的目录下 2.3生成好.gitignore

911140

怎么摆脱又臭又长的 Git 命令?

Java技术栈 www.javastack.cn 关注阅读更多优质文章 在使用 Git 的时候,虽然大部分时候我们用的是图形客户端,但图形客户端不能解决所有的操作,所以,也少不了需要使用命令行的时候...所以,本篇栈长分享一个偷懒的小技巧,我们可以给 Git 命令设置对应的别名(也可以说是缩写),比如: $ git config --global alias.br branch 我给 branch 设置了一个别名...$ git br * master 另外一个查看状态的 status 命令我觉得有必要设置下别名,很容易打错,也容易与 state 混淆。...下面再举一个复杂点带参数的例子: $ git config --global alias.rhm 'reset --hard origin/master' 我把重置成远程分支的命令别名改为了:rhm,...别名用起来吧!效率杠杠的! 奇奇怪怪的知识是不是又增加了?关注公众号Java技术栈,栈长还会继续分享一些 Git 的使用小技巧,公众号第一时间推送。

44341

重新搞懂Git,掌握日常命令和基本操作

如果你修改需要Pull Request 然后进行沟通和code review才能由有权限的人合并进去。...# 重置并撤销 git commit 以及 git add,保留工作区中所有修改 git reset --mixed commitID # 重置并撤销 git commit,但不撤销 git add,...git reset HEAD xx # 重置到上一个版本 git reset --hard HEAD^ # 重置到上上一个版本,可以继续到上一个 git reset --hard HEAD^^ # 重置到指定版本...那么切换的时候是阻止我们切换的,提示修改未提交或者隐藏git stash就是用来隐藏分支工作区修改但不想提交的。...而这个功能的前提就是你要知道不同分支上的修改在你提交的版本库之间是有差异性的,比如文件a.txt 我们添加到master分支,然后提交,然后你切换到newbranch分支上是没有a.txt的。

25360

Git常见命令与使用,从0到1学会使用Git

添加远程地址别名 git push 别名 分支 推送到远程仓库 git pull 别名 分支 拉取远程分支代码 我下面的操作是配置了系统环境变量的所有在cmd窗口中运行的(有些不是因为cmd窗口不支持...Linux操作) 如果没有配置则使用git bash here(鼠标右键查看然后点击) 设置用户签名 git config --global user.name 用户名 git config...--global user.email 邮箱 可在c盘当前用户下.gitconfig文件查看 初始化本地库 git init .git目录是隐藏的,手动打开显示 查看本地库状态...时候不能写文件名称了 git diff --check 可以查看哪里发生了冲突 创建远程仓库别名 查看远程仓库 git remote -v 创建远程仓库别名 git remote...add 别名 链接 推送到远程库 git push 别名 分支 git push 别名 本地分支:远程分支 拉取远程仓库 git pull 别名 分支 git pull 别名 远程分支

14120

git 工作流中的 Sourcetree 和命令行操作对比

git 工作流操作 1、初始化本地仓库文件夹 终端进入项目文件夹 git init 隐藏文件夹中有 .git 文件夹则初始化成功 2、git 查看仓库状态 这里以新建一个 demo.txt 为例 ① sourcetree...tag v1.0 6、git 重置临时修改未提交的部分 这里以在 demo.txt 中添加“temp”添加到暂存区但未提交为例 ① sourcetree 的操作:直接在工作区中右键已修改的文件选择重置即可...② 命令行操作 - 重置 git reset HEAD 文件名 添加完可以通过 git status 查看仓库状态  发现此时的工作区并不干净,需要使用 git checkout -- 文件名  现在工作区就干净啦...7、git 回到某一版本 这里以将 demo.txt 重置到“first commit”那一次提交为例 ① sourcetree 的操作:右键该版本选择“将 master 重置到这次提交” 然后执行第...git reset --hard 版本号 此时本地仓库已经回到该版本啦,而且工作区也是干净的 另外,如果删除本地文件,可以执行 git rm 文件名 然后执行第 4 步的提交操作 最后附上  下载地址

1.3K20

【版本管理 | Git】 一文详解关于分支的那些事,确定不来看看?

希望大佬带带) 分支是什么?...branch #创建分支 git branch 自定义名称 可以看到创建成功 查看创建分支版本 git log 也可以用上一文章所别名的指令(这里的git-log是别名过的,见上一篇文章配置别名...,或者使用git log 也可以) git-log 这里的HEAD - > 什么意思呢, 是指向对应分支的意思 假如多个分支,我们只能对当前分支进行修改,不能同时多个分支修改 接下来我们提交修改之前所修改的...demo01 查看日志(这里的git-log是别名过的,见上一篇文章配置别名,或者使用git log 也可以) git-log 可以看到HEAD – > 指向了当前分支demo01 此时文件是没有之前所添加的...如图我们合并demo01: 弹出提示框(vi 编辑框) 按Esc输入:wq 退出vi编辑 从图中可以看到,在修改分支时,*号指向分支,合并操作后分支回到主分支master(相当于两条线开发,然后回到一条线

17820

【版本管理 | Git】 一文详解关于分支的那些事,确定不来看看?

书接上文,在第一天中,我们学会了git的基本概念和基础命令,接下来我们讲解重要的知识点 --- 分支分支是什么?...branch图片#创建分支git branch 自定义名称可以看到创建成功图片查看创建分支版本git log图片也可以用上一文章所别名的指令(这里的git-log是别名过的,见上一篇文章配置别名,或者使用...git log 也可以)git-log图片这里的HEAD - > 什么意思呢, 是指向对应分支的意思假如多个分支,我们只能对当前分支进行修改,不能同时多个分支修改接下来我们提交修改之前所修改的ignore...查看日志(这里的git-log是别名过的,见上一篇文章配置别名,或者使用git log 也可以)git-log可以看到HEAD -- > 指向了当前分支demo01图片此时文件是没有之前所添加的.ingore...file.txt如图我们合并demo01:图片弹出提示框(vi 编辑框) 按Esc输入:wq 退出vi编辑图片从图中可以看到,在修改分支时,*号指向分支,合并操作后分支回到主分支master(相当于两条线开发,然后回到一条线

31250
领券