相关疑难解决方法(0)

如何撤消Git中最近的提交?

我不小心将错误的文件提交给Git,但我还没有将提交推送到服务器.

如何从本地存储库中撤消这些提交?

git version-control undo pre-commit git-commit

2万
推荐指数
103
解决办法
826万
查看次数

使用Git将最近的提交移动到新分支

我想把我已经承诺掌握的最后几个提交移动到一个新的分支,然后在完成这些提交之前把主人带回去.不幸的是,我的Git-fu还不够强大,有什么帮助吗?

即我怎么能从这里走出来

master A - B - C - D - E
Run Code Online (Sandbox Code Playgroud)

这个?

newbranch     C - D - E
             /
master A - B 
Run Code Online (Sandbox Code Playgroud)

git branching-and-merging git-branch

4647
推荐指数
16
解决办法
93万
查看次数

"git reset"和"git checkout"有什么区别?

我一直在想,git reset并且git checkout同样地,在这个意义上,两者都将项目带回特定的提交.但是,我觉得它们不可能完全相同,因为这将是多余的.这两者之间的实际差异是什么?我有点困惑,因为svn只svn co需要恢复提交.

添加

下面的图解释了差别,尽管在一个或者可能过于简化的或不正确的方式进行.你怎么看?是错误还是过度简化?

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

增加2

VonC和Charles解释了两者之间的差异,git reset并且git 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,checkout和reset可以模拟反叛.

在此输入图像描述

git checkout bar 
git reset --hard newbar 
git branch -d newbar 
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

git git-checkout git-reset

415
推荐指数
5
解决办法
11万
查看次数

Git - master领先于origin/master - 不希望它出现

我的主分支在14次提交之前领先于origin/master.我希望它与origin/master同步,因为那些14个提交是针对特定分支而不是master.我该如何回滚?

git

2
推荐指数
1
解决办法
134
查看次数