javascript

git

java

python

reactjs

loops

github

django

c#

git-remote

git-pull

user-interface

ignore

html

json

function

scope

jquery

iteration

namespaces

“ git reset --hard hash”和“ git checkout hash”之间有区别吗?

尽管--hardcheckout大多数情况下都有不同的用法,但我看不出两者之间有什么区别。

可能没有人会不厌其烦地添加--hard选项来执行基本checkout可以执行的操作。

也许您会看到历史的方式有所不同?

trans by 2020-07-31T09:38:27Z

git - 如何将HEAD移回以前的位置? (独立头)和撤消提交

在git中,我试图通过合并另一个分支来执行23b6772,然后通过以下方式将HEAD重置为上一个位置:

git reset origin/master

但我需要走出这一步。如何将HEAD移回上一个位置?

我有将其移动到的提交的SHA1 frag(23b6772)。
我怎样才能回到这个提交?

trans by 2019-07-23T00:22:50Z

使用暂存中的未提交文件撤消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 <file>..." to unstage)

#   modified:   .gitignore
...


MacBookPro:api user$ git reset --hard
HEAD is now at ff546fa added new strucuture for api

在这种情况下可以撤消git reset --hard吗?

trans by 2019-07-21T19:29:50Z

为什么git不能通过路径进行硬/软复位?

$ git reset -- <file_path>可以通过路径重置。

但是,$ git reset (--hard|--soft) <file_path>将报告如下错误:

Cannot do hard|soft reset with paths.
trans by 2019-07-10T10:44:53Z

“git rm --cached x”vs“git reset head - x”?

GitRef.org - 基础:

git rm --cached asd将从中删除条目   集结区。 这有点不同   来自git reset head -- asd其中“unstages”  文件。 通过“非舞台”我的意思是它恢复   什么在那里的集结区   在我们开始修改之前   另一方面,git rm只是踢   完全脱离舞台的文件,所以   它不包括在下一个   从而有效地提交快照   删除它。

默认情况下,git rm --cached asd将完全从暂存区域中删除该文件,并从磁盘中删除该文件&gt; (工作目录)。 要将文件保留在工作目录中,可以使用git reset head -- asd

但是git rm --cached asdgit reset head -- asd之间究竟有什么区别?

trans by 2019-06-08T02:34:14Z

git reset - 撤消“git add <dir>”?

我使用命令“git add dir”错误地添加了文件。 我还没有运行“git commit”。 有没有办法从提交中删除此目录及其中包含的所有内容?

我试过git reset dir,但它没有用。 显然git reset file是撤消它的方法。 但是我有这么多文件,所以时间很少。

trans by 2019-05-10T19:49:58Z

如何使用'git reset --hard HEAD'恢复到之前的提交?

这个问题在这里已有答案:

  • 如何将Git存储库还原为先前的提交                                     39个答案

我知道Git会跟踪我对我的应用程序所做的更改,并且它会保留给他们,直到我提交更改,但这里是我挂断的地方:

当我想恢复到之前的提交时,我使用:

git reset --hard HEAD

而Git回归:

HEAD is now at 820f417 micro

然后,我如何将硬盘上的文件恢复为之前的提交?

我接下来的步骤是:

git add .
git commit -m "revert"

但我的硬盘上没有任何文件发生变化......

我在做什么是对还是错?

trans by 2019-03-27T03:50:13Z

如何撤消git中的最后一次提交

这个问题在这里已有答案:

  • 如何撤消Git中最近的提交?                                     73个答案

错误地,我在develop分支中做了git reset --softgit reset HEAD --hard。 但幸运的是,我没有做git push

所以我想把它恢复到原始状态。

我试过git reset --softgit reset HEAD --hard,但看起来我搞砸了。

我该如何解决? 我想回到原始状态并可能保持代码更改。

trans by 2019-03-26T08:56:21Z

git reset - 如何丢弃Git中的本地提交?

我一直在做一些事情,并决定完全搞砸了......在完成了一些事情之后。 所以我尝试了以下顺序:

git reset --hard
git rebase origin
git fetch
git pull
git checkout

在那时我得到了消息

Your branch is ahead of 'origin/master' by 2 commits.

我想丢弃我的本地提交,而不必删除我的本地目录并重新下载所有内容。 我怎么能做到这一点?

trans by 2019-03-22T08:17:58Z

git checkout - Git,如何将origin / master重置为提交?

我通过此命令将本地主服务器重置为提交:

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

由于我也要重置原点/标题,我结帐到origin / master:

$ git checkout origin/master
Note: checking out 'origin/master'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:

  git checkout -b new_branch_name

HEAD is now at 2aef1de... master problem fixed for master. its okay now.

并通过此命令重置标头:

$ git reset --hard e3f1e37
HEAD is now at e3f1e37 development version code incremented for new build.

然后我尝试添加提交到origin / header我没有成功。

$ git commit -m "Reverting to the state of the project at e3f1e37"
# HEAD detached from origin/master
nothing to commit, working directory clean

最后,我结账给我当地的主人。

$ git checkout master
Switched to branch 'master'
Your branch is behind 'origin/master' by 7 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

因为,我重置了origin / master的头部我希望本地和原点应该在同一个方向,但正如你所看到的那样,git说我的本地/主人是7个提交后面的origin / master。

我该如何解决这个问题? 我正在寻找的东西是本地/主人的头和同一提交的起源/主人。 下图显示了我的所作所为。 谢谢。

enter image description here

trans by 2019-03-15T16:22:02Z

Git Revert,Checkout和Reset之间有什么区别?

我正在尝试学习如何将文件和项目恢复或回滚到先前的状态,并且不理解git revert,checkoutreset之间的区别。为什么有3个不同的命令看似相同的目的,何时应该有人选择 一个在另一个?

trans by 2019-03-15T04:07:41Z

git reset --hard之后没有暂停的更改

标题说明了一切。

autocrlf之后,.gitconfig给出了git checkout-index -f -a部分中的文件。

我也试过autocrlf,.gitconfiggit checkout-index -f -a,但无济于事。

那么,我怎样才能摆脱那些未分阶段的变化呢?

这似乎只打击Visual Studio项目文件。 奇怪的。 看到这个粘贴:[http://pastebin.com/eFZwPn9Z。]这些文件的特殊之处在于.gitattributes我有:

*.sln        eol=crlf
*.vcproj     eol=crlf
*.vcxproj*   eol=crlf

此外,autocrlf在我的全球.gitconfig中设置为false。这可能是某种相关的吗?

trans by 2019-03-04T10:55:59Z

在gi中最后一次提交后重置所有更改

如何撤消上次提交后对目录所做的每次更改,包括删除添加的文件,重置已修改的文件以及添加已删除的文件?

trans by 2019-02-20T19:41:10Z

git checkout - Git:无法撤消本地更改(错误:路径...已取消合并)

我有以下工作树状态

$ git status foo/bar.txt
# On branch master
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       deleted by us:      foo/bar.txt
#
no changes added to commit (use "git add" and/or "git commit -a")

文件foo/bar.txt在那里,我想再次进入“未更改状态”(类似于'svn revert'):

$ git checkout HEAD foo/bar.txt
error: path 'foo/bar.txt' is unmerged
$ git reset HEAD foo/bar.txt
Unstaged changes after reset:
M       foo/bar.txt

现在它变得令人困惑:

$ git status foo/bar.txt
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#       new file:   foo/bar.txt
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   foo/bar.txt
#

两个部分中的相同文件,新增和修改? 我该怎么办?

trans by 2019-02-07T00:17:45Z

git reset - 如何取消本地git提交

我的问题是我已经更改了一个文件,例如:README,为我的测试行添加了一行新的'并保存了该文件,然后我发出了以下命令

 git status

 # On branch master
 # Changed but not updated:
 #   (use "git add <file>..." to update what will be committed)
 #   (use "git checkout -- <file>..." to discard changes in working directory)
 #
 #  modified:   README
 #
 no changes added to commit (use "git add" and/or "git commit -a")


 git add README

 git commit -a -m 'To add new line to readme'

我没有将代码推送到github,现在我想取消这个提交。

为此我用过

   git reset --hard HEAD~1

但是我从README文件中丢失了新添加的“这个用于我的测试行”。这不应该发生。 我需要内容。 有没有办法保留内容并取消我的本地提交?

trans by 2019-01-21T00:19:14Z

版本控制 - 撤消已被推送到远程仓库的Git中的特定提交

撤消特定提交的最简单方法是:

  • 不在脑袋或头部
  • 已被推到遥控器。

因为如果它不是最新的提交,

git reset HEAD

不起作用。 而且因为它被推到了遥远的地方,

git rebase -i

git rebase --onto

将导致遥控器出现一些问题。

更重要的是,我不想真正修改历史。 如果有错误的代码,它就在历史中可以看到。 我只想在工作副本中使用它,我不介意反向合并提交。

换句话说,以下svn命令的Git等价物是什么:

svn merge -r 303:295 http://svn.example.com/repos/calc/trunk

通过反向合并这些修订中的所有更改,将所有更改从295移除到302,作为新提交。

svn merge -c -302 ^/trunk

当然,通过添加另一个反向合并来自相应提交的更改的提交来撤消302提交。

我认为它应该是一个相当简单的Git操作和一个相当常见的用例。 原子提交还有什么意义?

我们有staging存储和所有以确保提交是完全原子的,你不应该能够轻松地撤销一个或多个这些原子提交吗?

trans by 2019-01-20T10:41:48Z

命令行 - git撤消所有未提交或未保存的更改

我试图撤消自上次提交以来的所有更改。 查看此帖后,我尝试了git reset --hardgit reset --hard HEAD。 我用头响应现在是18c3773 ...但是当我查看我的本地源时,所有文件仍然存在。 我错过了什么?

trans by 2019-01-17T16:15:31Z

undo - 我可以删除git commit但保留更改

在我的一个开发分支中,我对我的代码库进行了一些更改。 在我能够完成我正在处理的功能之前,我不得不将当前分支切换到master来演示一些功能。 但是只使用“git checkout master”保留了我在开发分支中所做的更改,从而破坏了master中的一些功能。 所以我做的是使用提交消息“临时提交”在我的开发分支上提交更改,然后为演示提供checkout master。

现在我已经完成了演示并重新开始在我的开发分支上工作,我想删除我所做的“临时提交”,同时仍然保留我所做的更改。 那可能吗?

trans by 2019-01-17T01:29:00Z

“git reset”和“git checkout”有什么区别?

我一直认为git resetgit checkout是相同的,因为它们都将项目带回特定的提交。 但是,我觉得它们不可能完全相同,因为这将是多余的。 这两者之间的实际差异是什么? 我有点困惑,因为svn只有git reset来恢复提交。

添加

下图解释了差异,尽管可能是过于简单或不正确的方式。 你怎么看? 这是错误还是过度简化?

http://a.imageshack.us/img192/5440/screenshot20100903at416.png

增加2

VonC和Charles解释了git resetgit checkout之间的差异。 我目前的理解是,git reset将所有更改还原为特定提交,而git checkout或多或少准备分支。 我发现以下两个图表对于理解这一点非常有用:

http://a.imageshack.us/img651/1559/86421927.png http://a.imageshack.us/img801/1986/resetr.png

增加3

来自[http://think-like-a-git.net/sections/rebase-from-the-ground-up/using-git-cherry-pick-to-simulate-git-rebase.html,,结帐和重置 可以模仿rebase。

enter image description here

git checkout bar 
git reset --hard newbar 
git branch -d newbar 

enter image description here

trans by 2019-01-11T18:57:26Z

undo - 如何取消我在Git中的最后一次提交

这个问题在这里已有答案:

  • 如何撤消Git中最近提交的提交?                                     72个答案

我如何取消承诺我在git中的最后一次提交?

是吗

git reset --hard HEAD

要么

git reset --hard HEAD^

trans by 2018-12-27T03:31:28Z

1 2 下一页 共2页