如何从当前状态恢复为在某个提交时创建的快照?
如果我这样做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 merge some-other-branch本地,但从未将更改推送到原始主.我不是故意合并,所以我想撤消它.在git status合并后执行操作时,我收到此消息:
# On branch master
# Your branch is ahead of 'origin/master' by 4 commits.
Run Code Online (Sandbox Code Playgroud)
git revert HEAD -m 1
Run Code Online (Sandbox Code Playgroud)
但现在我收到这条消息git status:
# On branch master
# Your branch is ahead of 'origin/master' by 5 commits.
Run Code Online (Sandbox Code Playgroud)
我不希望我的分支通过任何数量的提交领先.我该如何回到那一点?
如何将本地分支重置为远程存储库中的分支?
我做了:
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)
但当我跑一个git status,
On branch master
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
modified: java/com/mycompany/TestContacts.java
modified: java/com/mycompany/TestParser.java
Run Code Online (Sandbox Code Playgroud)
你能告诉我为什么我有这些'修改'?我没有碰过这些文件?如果我这样做,我想删除它们.
在git rebase origin/development以下错误消息从git显示:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
Run Code Online (Sandbox Code Playgroud)
我的git版本是2.9.0.用于在以前的版本中正常工作.
如何通过新版本中引入的强制标记继续使用此rebase,从而允许不相关的历史记录?
我在Git中有一个存储库.我做了一个分支,然后对主人和分支做了一些改变.
然后,几十次提交之后,我意识到分支处于比主设备好得多的状态,所以我希望分支"成为"主设备并忽略主设备上的更改.
我无法合并它,因为我不想在master上保留更改.我该怎么办?
额外:在这种情况下,'old'主服务器已经被push转到另一个存储库,例如GitHub.这怎么改变了?
我在我的本地计算机上做了一些更新,将它们推送到远程存储库,现在我正在尝试将更改提取到服务器并获取消息;
错误:合并将覆盖对以下文件的本地更改:
的wp-content/W3TC-配置/ master.php
请在合并之前提交更改或存储更改.
所以我跑了,
git checkout -- wp-content/w3tc-config/master.php
Run Code Online (Sandbox Code Playgroud)
并再次尝试,我收到相同的消息.我假设w3tc在服务器上的配置文件中改变了一些东西.我不关心本地副本或远程副本是否在服务器上(我认为远程副本是最好的),我只是希望能够合并其余的更改(插件更新).
有任何想法吗?
我正在使用git分支并准备提交我的更改,因此我使用有用的提交消息进行了提交.然后我心不在焉地对不值得保留的代码做了一些小改动.我现在想改变分支,但是git给了我,
错误:您对"X"进行了本地更改; 不能切换分支.
我以为我可以在不提交的情况下改变分支.如果是这样,我该怎么设置呢?如果没有,我该如何摆脱这个问题?我想忽略这些微小的变化而不提交,只是改变分支.
我只是压缩了一些提交git rebase并做了一个git push --force(这是邪恶的,我知道).
现在其他软件工程师有不同的历史,当他们这样做时git pull,Git会合并.有没有办法解决这个问题,除了做一个rm my-repo; git clone git@example.org:my-repo.git?
我需要与之相反的东西git push --force,但git pull --force没有给出预期的结果.
我有一个CENTRAL裸存储库,有三个开发人员存储库正常拉动和推送它.
我还有另外两个来自CENTRAL裸仓库的存储库:一个是实时服务器,另一个是测试/阶段服务器 - 每个都来自它自己的分支.
场景是这样的:我post-update在CENTRAL repo上有一个钩子脚本,它自动访问测试和实时回购并在每个上运行一个pull命令.这会更新测试服务器和实时服务器,具体取决于具有新提交的分支.一切都很好.
问题是:在紧急情况下有时可能会在服务器上直接更新文件(通过ftp或其他),然后CENTRAL更新后脚本将失败,因为会发生合并/覆盖冲突.没有办法避免这种情况,这是不可避免的.
我想要发生的是:我希望实时和测试站点的拉力总是覆盖/合并拉.总是.这些回购将是拉动的,因为它们不适合开发.
在我的所有研究中,我找不到一个好的解决方案,让拉总是强制覆盖本地文件.这是可能吗?如果是这样,那将是一个很好的发展方案.
git ×10
git-pull ×3
git-checkout ×2
undo ×2
branch ×1
git-merge ×1
git-reset ×1
git-revert ×1
rebase ×1