如何从当前状态恢复为在某个提交时创建的快照?
如果我这样做git log,那么我得到以下输出:
$ git log
commit a867b4af366350be2e7c21b8de9cc6504678a61b`
Author: Me <me@me.com>
Date: Thu Nov 4 18:59:41 2010 -0400
blah blah blah...
commit 25eee4caef46ae64aa08e8ab3f988bc917ee1ce4
Author: Me <me@me.com>
Date: Thu Nov 4 05:13:39 2010 -0400
more blah blah blah...
commit 0766c053c0ea2035e90f504928f8df3c9363b8bd
Author: Me <me@me.com>
Date: Thu Nov 4 00:55:06 2010 -0400
And yet more blah blah...
commit 0d1d7fc32e5a947fbd92ee598033d85bfc445a50
Author: Me <me@me.com>
Date: Wed Nov 3 23:56:08 2010 -0400
Yep, more blah blah.
Run Code Online (Sandbox Code Playgroud)
如何从11月3日恢复提交,即提交0d1d7fc?
我看到有趣的帖子解释了微妙之处git reset.
不幸的是,我读的越多,我就越不能完全理解它.我来自SVN背景,Git是一个全新的范例.我很容易变得善变,但Git更具技术性.
我认为git reset很接近hg revert,但似乎存在差异.
究竟究竟做了git reset什么?请包括以下详细说明:
--hard,--soft和--merge;HEAD如HEAD^和HEAD~1;HEAD全球压力水平的影响.我接到了一个大项目。客户想将其添加到github。
我是一点一点添加的。然后发生的事情是我太贪心了,一次添加了太多文件。现在,无论我尝试什么,我都会不断收到此错误。我怎样才能解决这个问题?我试图回滚,但也许我做错了。
$ git push
Enter passphrase for key '/c/Users/guestaccount/.ssh/id_rsa':
Enumerating objects: 35931, done.
Counting objects: 100% (35931/35931), done.
Delta compression using up to 12 threads
Compressing objects: 100% (35856/35856), done.
remote: fatal: pack exceeds maximum allowed size
fatal: sha1 file '<stdout>' write error: Broken pipe
error: remote unpack failed: index-pack abnormal exit
To github.com:(mygithubid)/(repo).git
! [remote rejected] main -> main (failed)
error: failed to push some refs to 'github.com:(mygithubid)/(repo).git'
Run Code Online (Sandbox Code Playgroud)
我正在使用 Visual Studio Code 和 git bash 上传。
使用公共仓库,我想让我的主分支回到过去的某个提交.我已经查看了选项,对我来说最好的事情看起来是对所需提交的简单检查,然后提交到主分支.但是,当我执行检出时,它不会删除在指定的提交哈希之后添加到master中的某些文件.
例如,如果我想回到提交aaa1:
$ cd working-copy-top-dir
$ git checkout master
$ git checkout -- .
$ git clean -fd
$ git checkout aaa1 .
$ git clean -fd
Run Code Online (Sandbox Code Playgroud)
但此时添加的一些文件aaa1仍在工作副本中.什么是checkout命令来获得工作拷贝数据回来是怎么回事的aaa1?
$ git --version
git version 2.7.2.windows.1
Run Code Online (Sandbox Code Playgroud) 我最近在远程存储库中推送了项目更改的提交。我刚刚发现我通常不提交更改的文件之一被包含在内,因为它可能包含敏感信息。
我想撤消对该文件的提交更改(到最后一个状态),而不丢失其他文件中提交的更改。
由此:
对此:
目前,只有我有权访问该存储库,因此重写历史记录没有问题,因此当我授予对该远程存储库的访问权限时,他们不会在历史记录中看到敏感信息。那么,我该怎么做呢?