Questions tagged «git-reset»

将当前的Git存储库头设置为指定的提交,并可选地重置索引和工作树以匹配。

6
如何在Git中丢弃本地提交?
我一直在研究某些东西,并在完成其中一部分后决定完全拧紧它。所以我尝试了以下顺序: git reset --hard git rebase origin git fetch git pull git checkout 这时我收到消息 Your branch is ahead of 'origin/master' by 2 commits. 我想放弃本地提交,而不必清除本地目录并重新下载所有内容。我该怎么做?
262 git  git-reset 

4
Git,如何将原点/主节点重置为提交?
我通过以下命令将本地主服务器重置为提交: git reset --hard e3f1e37 当我输入$ git status命令时,终端会说: # On branch master # Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded. # (use "git pull" to update your local branch) # nothing to commit, working directory clean 由于我也想重置原点/标头,因此我签出到原点/原版: $ git checkout origin/master Note: checking out 'origin/master'. …

1
git reset --hard origin / master是什么意思?
我做git pull了一个错误: 下列工作树文件将被合并覆盖...请先移动或删除它们,然后再进行合并。 为了解决这个问题,我做了以下工作: git fetch git reset --hard origin/master 现在,当我这样做时git pull,它会显示所有最新信息。我想知道运行这些命令时到底发生了什么。我知道可以git fetch从远程存储库中获取更改,而无需将其合并到本地存储库中。 是什么意思git reset --hard origin/master?它是如何工作的?

9
如何git reset --hard子目录?
更新²:使用Git 2.23(2019年8月)时,有一个新命令git restore可以执行此操作,请参见接受的答案。 更新:从Git 1.8.3开始,这将更加直观,请参阅我自己的答案。 想象一下以下用例:我想摆脱Git工作树的特定子目录中的所有更改,而所有其他子目录保持不变。 我可以git checkout .,但是git checkout。添加稀疏检出排除的目录 有git reset --hard,但不允许我对子目录进行操作: > git reset --hard . fatal: Cannot do hard reset with paths. 再说一遍:为什么git无法按路径进行硬/软复位? 我可以使用来反向修补当前状态git diff subdir | patch -p1 -R,但这是一种很奇怪的方法。 此操作正确的Git命令是什么? 下面的脚本说明了该问题。在How to make files注释下方插入正确的命令-当前命令将恢复a/c/ac稀疏检出排除的文件。请注意,我不希望明确恢复a/a和a/b,我只“知道” a,并希望恢复下的所有内容。编辑:而且我也不知道b,或者其他目录与处于同一级别a。 #!/bin/sh rm -rf repo; git init repo; cd repo for f …

5
撤消“ git add <dir>”?
我使用命令“ git add dir”错误地添加了文件。我尚未运行“ git commit”。有没有办法从提交中删除此目录及其中包含的所有内容? 我已经尝试过git reset dir,但是没有用。显然git reset file是撤销它的方法。但是我的文件太多了,时间却很少。
186 git  git-reset 


3
「git rm --cached x」与「git reset head --x」?
GitRef.org-基本: git rm将从登台区域删除条目。这与git reset HEAD“取消登台”文件有些不同。所谓“非舞台”,是指它将舞台区域恢复到我们开始修改之前的位置。 git rm另一方面,只是将文件完全踢出舞台,因此它不包含在下一个提交快照中,从而有效地将其删除。 默认情况下,a git rm file将从暂存区中完全删除该文件,并且还将其从磁盘&gt;(工作目录)中删除。要将文件保留在工作目录中,可以使用git rm --cached。 但是git rm --cached asd和之间到底有什么区别git reset head -- asd?


11
撤消git reset --hard在暂存区中使用未提交的文件
我正在努力恢复工作。我愚蠢地做过git reset --hard,但是在那之前我只做过get add .而没有做过git commit。请帮忙!这是我的日志: MacBookPro:api user$ git status # On branch master # Changes to be committed: # (use "git reset HEAD &lt;file&gt;..." to unstage) # modified: .gitignore ... MacBookPro:api user$ git reset --hard HEAD is now at ff546fa added new strucuture for api git reset --hard在这种情况下可以撤消吗?

4
Git:如何在'git reset'之后重用/保留提交消息?
正如吉特用户经常我遇到的情况,我需要在不适合的方式来返工一个或更多的提交--amend或rebase -i与修正的提交。通常我会做类似的事情 git reset HEAD~1 # hack, fix, hack git commit -a # argh .. do I need to retype my message? 我非常认真地对待明智的编写提交消息。它们通常包含较大的文本,并带有更改的引用和说明。到目前为止,我对冗长的过程非常恼火,因为它需要通过未排序的git reflog,git log复制和粘贴过程来恢复我的旧提交消息。 有更好的解决方案吗?如果我的提交不止一次,怎么办? 编辑:对此进行了一点思考之后,我认为我正在寻找的是类似git stash的提交消息功能,其中修正/修改提交不合适。

3
我需要弹出并丢弃master分支中的“中间”提交。我该怎么做?
例如,在下面的master分支中,我只需要丢弃提交af5c7bf16e6f04321f966b4231371b21475bc4da,这是由于先前的重新设置而导致的第二次提交: commit 60b413512e616997c8b929012cf9ca56bf5c9113 Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Tue Apr 12 23:50:15 2011 +0200 add generic config/initializers/omniauth.example.rb commit af5c7bf16e6f04321f966b4231371b21475bc4da Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Fri Apr 22 00:15:50 2011 +0200 show github user info if logged commit e6523efada4d75084e81971c4dc2aec621d45530 Author: Luca G. Soave &lt;luca.soave@gmail.com&gt; Date: Fri Apr 22 17:20:48 …

3
在有人将基准或重置推送到已发布的分支后,如何恢复/重新同步?
我们都听说过,永远不要为已发布的工作重新定级,这很危险,等等。但是,如果发布了重新定级的情况,我还没有看到任何有关如何处理这种情况的方法。 现在,请注意,只有在存储库仅由已知的(最好是少数)人员克隆的情况下,这才是真正可行的,因此,推动重新设置或重置的人员可以通知其他所有人,下次他们需要注意取(!)。 如果您没有本地提交foo并且可以重新建立基础,那么我看到的一个显而易见的解决方案将起作用: git fetch git checkout foo git reset --hard origin/foo foo根据远程存储库,这将简单地丢弃本地状态以支持其历史记录。 但是,如果人们对该分支机构进行了实质性的本地变更,该如何处理呢?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.