Workspace:工作区 Index / Stage:暂存区 Repository:仓库区(或本地仓库) Remote:远程仓库 工作区 指的是在PC中能看得到的创建的一个管理仓库的目录,比如我的test...而我个人更倾向第二种方法,错误的commit没必要保留下来。 reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。...commit 暂存区、工作区的内容都会被修改到与提交点完全一致的状态 git reset --hard HEAD 让工作区回到上次提交时的状态 revert ?...git revert用一个新提交来消除一个历史提交所做的任何修改。 revert与reset的区别 ?...git diff 显示暂存区和工作区的差异 git diff HEAD 显示工作区与当前分支最新commit之间的差异 git cherry-pick commit 选择一个commit,合并进当前分支
本地提交 hg commit -m "add/remove xxx function" Tips: 只想提交部分文件时,可以在commit后指定文件名,如:hg ci -m "xxx" test.v 与...查看更新记录 hg tip # 查看最新一次的提交 hg log -r # 版本号 hg log -l 2 # 只看最新的两个版本 hg log -v # 查看更新了哪些文件...合并 hg merge -r REV # 把本地的最新版本与刚pull的最新版本进行merge,REV是pull的最新版本 Tips: 任何情况下,不要用force参数。...放弃本地修改、撤销提交 hg revert xxx.v # 放弃本地修改,回到上次提交的状态 hg rollback # 回到上一个版本,最新修改过的文件仍然保留 13....误删除文件的恢复(已经加入版本库的文件) 也是用hg revert: hg revert xxx.v 14.
-a参数相当于:all git branch -a 列出所有远程服务器上的分支 -r参数相当于:remote git branch -r 同步本地与远程分支 删除远程不存在的本地分支 git fetch...commit 历史 git log --pretty=oneline --graph --decorate --all 以新增一个commit的方式还原某一个commit的修改 git revert commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。...git reset –soft HEAD~3 #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。...如果还要提交,直接commit即可 git reset –hard commit-id> #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容 查看指定路径文件代码是谁写的
commit 消息 - 这是 commit 消息最重要的部分…我们通常都希望看到此信息,如何使输出结果更简短呢 git log命令有一个选项,可以用来更改仓库信息的显示方式。...要将所有文件提交到仓库中,首先需要将这些文件从工作目录移到暂存区。...- 与 1 个字符匹配 [abc] - 与 a、b 或 c 匹配 ** - 与嵌套目录匹配 - a/**/z 与以下项匹配 a/z a/b/z a/b/c/z 标签、分支、合并 git tag 运行...快进合并将使当前检出的分支向前移动,直到它指向与另一个分支(这里是 footer)指向的 commit 一样为止。...现在我创建了一个包含一些更改的 commit,我可以使用 git revert 命令还原它 $ git revert commit-to-revert> 因为最近的 commit 的 SHA
小结 任何对象都是在工作区中诞生和被修改; 任何修改都是从进入 index 区才开始被版本控制; 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹; 与协作者分享本地的修改,可以把它们 push 到远程仓库来共享...reset 命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。...git reset —soft commit> 只改变提交点,暂存区和工作目录的内容都不改变 git reset —mixed commit> 改变提交点,同时改变暂存区的内容 git reset...—hard commit> 暂存区、工作区的内容都会被修改到与提交点完全一致的状态 git reset --hard HEAD 让工作区回到上次提交时的状态 revert ?...git revert 用一个新提交来消除一个历史提交所做的任何修改。 revert 与 reset 的区别 ?
小结 任何对象都是在工作区中诞生和被修改; 任何修改都是从进入index区才开始被版本控制; 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹; 与协作者分享本地的修改,可以把它们push到远程仓库来共享...reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。...git reset —soft commit> 只改变提交点,暂存区和工作目录的内容都不改变 git reset —mixed commit> 改变提交点,同时改变暂存区的内容 git reset...—hard commit> 暂存区、工作区的内容都会被修改到与提交点完全一致的状态 git reset --hard HEAD 让工作区回到上次提交时的状态 revert ?...git revert用一个新提交来消除一个历史提交所做的任何修改。 revert与reset的区别 ?
小结 任何对象都是在工作区中诞生和被修改; 任何修改都是从进入index区才开始被版本控制; 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹; 与协作者分享本地的修改,可以把它们push到远程仓库来共享...reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。...git reset —soft [commit] 只改变提交点,暂存区和工作目录的内容都不改变 git reset —mixed [commit] 改变提交点,同时改变暂存区的内容 git reset...—hard [commit] 暂存区、工作区的内容都会被修改到与提交点完全一致的状态 git reset --hard HEAD 让工作区回到上次提交时的状态 revert ?...git revert用一个新提交来消除一个历史提交所做的任何修改。 revert与reset的区别 ?
小结 任何对象都是在工作区中诞生和被修改; 任何修改都是从进入index区才开始被版本控制; 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹; 与协作者分享本地的修改,可以把它们push到远程仓库来共享...merge reset reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。...git reset —soft commit> 只改变提交点,暂存区和工作目录的内容都不改变 git reset —mixed commit> 改变提交点,同时改变暂存区的内容 git reset...—hard commit> 暂存区、工作区的内容都会被修改到与提交点完全一致的状态 git reset --hard HEAD 让工作区回到上次提交时的状态 revert git revert用一个新提交来消除一个历史提交所做的任何修改...revert与reset的区别 git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。 在回滚这一操作上看,效果差不多。
正如文档最初说的,它是一面镜子。它应该是一个功能相同的副本,可以与原件互换。...撤销修改 场景1:当你改乱了工作区某个文件的内容,还未提交到工作区, 且想直接丢弃工作区的修改时,用命令git checkout -- file。用干净暂存区内容(同版本库)去覆盖工作区的内容。...reset 和 revert 本地分支可以 reset, 回退分支 revert 回归分支会生成新的提交记录, 远程分支建议如此操作....如何修改老旧的commit信息 git rebase -i commit-id commit-id 指的是要修改的节点的父节点....使用 r 命令 如何多个 commit 整理合并成 git rebase -i commit-id commit-id 指的是要修改的节点的父节点. 然后使用 s 标记进行精简。
的对比 $ git diff --cached/--staged # 查看工作区与上次提交到本地仓库的快照(即最新提交到本地仓库的快照)的对比 $ git diff branchname # 查看工作区与...可以撤销工作区/暂存区的文件」 「reset 和 checkout 可以作用于 commit 或者文件,revert 只能作用于 commit」 checkout 详解 # 恢复暂存区的指定文件到工作区...(默认) # 重置暂存区与工作区,回退到最近一次提交的版本内容 $ git reset --hard # 重置暂存区与工作区,回退到最近一次提交的上一个版本 $ git reset --hard HEAD...比如说,你在追踪一个 bug,然后你发现它是由一个提交造成的,这时候撤销就很有用。 「撤销(revert)被设计为撤销公共提交的安全方式,重设(reset)被设计为重设本地更改。」...30、如何修改旧的 commit 的 message/如何将多个 commit 合成一个 commit/如何将多个间隔的 commit 合成一个 commit/ git rebase -i 31、如果两个人都对某个文件进行了修改
基本用法 # 存储当前的工作现场 git stash save "修 bug 之前的中断点" 这个命令会把你当前的改动保存起来,包括工作区和暂存区的内容。...进阶玩法 # 只存储工作区的改动,不包含暂存区 git stash save --keep-index "仅存储工作区的改动" 这个命令就比较灵活了,适合一些特殊场景,比如你暂存了一部分改动,但还没提交...基本用法 # 回到上一个 commit,但保留工作目录的改动 git reset --soft HEAD^ 这个命令会让你的 HEAD 回到上一个 commit,但是工作区和暂存区的改动都会保留。...4. revert:撤销 commit 误提交了个 bug,想撤销但不破坏历史记录?revert 就是你的救星。...# 自动提交生成的 revert commit git revert --no-commit commit-hash> 这个命令会生成一个反向 commit,但不会自动提交,让你有机会先检查一下,再手动提交
将所有修改加入暂存区-> git commit -m "提交描述" 将代码提交到 本地仓库 -> git push 将本地仓库代码更新到 远程仓库 场景1: 当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时...提交错误文件,回退到上一个 commit 版本,再 commit git reset 删除指定的 commit // 修改版本库,修改暂存区,修改工作区 git reset HEAD //...git revert HEAD // 撤销前前一次 commit git revert HEAD^ // (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本...git revert commit git revert是提交一个新的版本,将需要revert的版本的内容再反向修改回去, 版本会递增,不影响之前提交的内容 `git revert` 和 `git reset...左侧找到 SSH keys 按钮并点击,输入刚刚复制的公钥即可 七、暂存 git stash 可用来暂存当前正在进行的工作,比如想 pull 最新代码又不想 commit , 或者另为了修改一个紧急的
所以我把它们写了下来,并认为与社区分享它们会很好。我希望你发现它们有用。...git add -p 如何从Git当前的工作树中删除跟踪文件: 此命令需要提交消息来解释文件被删除的原因。...如何在Git中回滚最后一次提交: git revert将创建一个新的提交,它与给定提交的所有内容相反。...我们可以像这样使用head别名来恢复最新的提交: git revert HEAD 如何在Git中回滚旧的提交: 您可以使用它的提交id恢复旧的提交。这将打开编辑器,以便您可以添加一个提交消息。...-delete origin branch_name_here 如何使用Git rebase: 可以使用git rebase将已完成的工作从一个分支转移到另一个分支。
建议一般不要使用 -a | --all 参数,正常的提交过程还是先使用 git add 将要改动的文件添加到暂存区,再用 git commit 提交到本地版本库。...git commit --help git status git status命令用于显示工作区和暂存区的状态。 (1)查看工作区与暂存区中文件的变更情况。...,比如如果要修改提交信息,就使用r或reword,各指令的含义如下: p,pick:直接使用该次提交 r,reword:使用该次提交,但重新编辑提交信息 e,edit:停止到该次提交,通过`git commit...git revert 一般只用于版本回退,撤销已经提交的更改,并且要求暂存区与工作区是干净的。...git reset 一般用于撤销未提交的修改,比如使用git reset --hard放弃暂存区与工作区的修改。
当你完成某个需求或功能后需要提交到远程仓库,那么第一步就是通过 git add先提交到暂存区,被git管理。 本地仓库 保存了对象被提交 过的各个版本,比起工作区和暂存区的内容,它要更旧一些。...小结 任何对象都是在工作区中诞生和被修改; 任何修改都是从进入index区才开始被版本控制; 只有把修改提交到本地仓库,该修改才能在仓库中留下痕迹; 与协作者分享本地的修改,可以把它们push到远程仓库来共享...add相关命令很简单,主要实现将工作区修改的内容提交到暂存区,交由git管理。 ? commit ?...如上图,在实际开放中,我们可能从master分支中切出一个分支,然后进行开发完成需求,中间经过R3,R4,R5的commit记录,最后开发完成需要合入master中,这便用到了merge。 ?...reset命令把当前分支指向另一个位置,并且相应的变动工作区和暂存区。 ? revert ? git revert用一个新提交来消除一个历史提交所做的任何修改。 revert与reset的区别 ?
git fetch --all && git reset --hard origin/master 重设第一个 commit 也就是把所有的改动都重新放回工作区,并清空所有的 commit,这样就可以重新提交第一个...git diff --cached 展示暂存区、工作区和最近版本的不同 输出工作区、暂存区 和本地最近的版本(commit)的 different(不同)。...git reset –mixed HEAD^ #回退至上个版本,它将重置HEAD到另外一个commit,并且重置暂存区以便和HEAD相匹配,但是也到此为止。工作区不会被更改。...git reset –soft HEAD~3 #回退至三个版本之前,只回退了commit的信息,暂存区和工作区与回退之前保持一致。...如果还要提交,直接commit即可 git reset –hard commit-id> #彻底回退到指定commit-id的状态,暂存区和工作区也会变为指定commit-id版本的内容 修改上一个
领取专属 10元无门槛券
手把手带您无忧上云