我有一个git存储库,如下所示:
A -> B -> C -> D -> HEAD
Run Code Online (Sandbox Code Playgroud)
我希望分支的头部指向A,即我希望B,C,D和HEAD消失,我希望头部与A同义.
听起来我可以尝试改变(不适用,因为我推动了之间的变化),或者还原.但是如何恢复多个提交?我一次还原一个吗?订单重要吗?
我克隆了某个项目的git存储库.我可以将文件转换为初始状态吗?当我查看文件时,请转到修订版2,3,4 ...最近?我想概述项目是如何发展的.
我今天最终得到了一个独立的头,同样的问题如下所述:git push说一切都是最新的,即使我有本地更改
据我所知,我没有做任何与众不同的事情,只是从我当地的回购中提交和推送.
那我怎么最终得到一个detached HEAD?
我的项目结构
ProjectA
-FrameworkA (submodule)
--Twig (submodule of FrameworkA)
Run Code Online (Sandbox Code Playgroud)
我如何递归更新子模块?我已经尝试了一些git命令(在ProjectA上)
git submodule foreach git pull origin master
Run Code Online (Sandbox Code Playgroud)
要么
git submodule foreach --recursive git pull origin master
Run Code Online (Sandbox Code Playgroud)
但是不能拉扯Twig的文件.
使用Git X并且必须在某些事情上做到失败.看起来就像几天前我创建了一个名为的分支detached HEAD并且一直致力于它.我的正常过程是承诺master,然后推动它origin.但我无法推动detached HEAD.
我的下一站让我搞砸了.我选择了git checkout master- 我的detached HEAD分支消失了.回到我的项目,过去几天我的所有变化都被抹去了.
无论如何我有可能得到这些改变吗?
我通过此命令将本地主服务器重置为提交:
git reset --hard e3f1e37
Run Code Online (Sandbox Code Playgroud)
当我输入$ 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
Run Code Online (Sandbox Code Playgroud)
由于我也要重置原点/标题,我结帐到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 …Run Code Online (Sandbox Code Playgroud) 所以我在存储库中做了一些工作,当我即将提交时,我意识到我目前不在任何分支上.
在使用子模块时,这种情况发生了很多,我能够解决它,但这个过程很繁琐,而且我一直在想必须有一个更简单的方法来做到这一点.
有没有一种简单的方法可以回到分支上,同时保持变化?
我大约一个月前克隆了一个远程git存储库.远程存储库经历了许多变化,现在变得不稳定.现在我需要另一个存储库副本,版本与我一个月前克隆的版本相同.
我该怎么做呢?
我有一个关于Git的新手问题:
我需要在分支的历史中来回移动.这意味着,我需要将所有文件放到一些旧版本中的状态,然后我需要回到存储库中的最新状态.我不需要提交.
使用SVN,它会
svn up -r800
Run Code Online (Sandbox Code Playgroud)
得到修订版800,和
svn up
Run Code Online (Sandbox Code Playgroud)
与存储库保持同步.
我知道我想要回复的提交的哈希,所以我试过了
git reset <hash>
Run Code Online (Sandbox Code Playgroud)
这似乎让我在那里.但后来我试过了
git pull
Run Code Online (Sandbox Code Playgroud)
但是抱怨冲突.
那么,通过分支历史的正确方法是什么?
我正在考虑SVN,所以不要指向我一些很好的教程.请注意,我已经检查了http://git.or.cz/course/svn.html和http://www.youtube.com/watch?v=8dhZ9BXQgc4.
谢谢,Ondra.