我正在使用这个工作流程:
http://reinh.com/blog/2009/03/02/a-git-workflow-for-agile-teams.html
在他提到的地方:"首先,在你的主分支(git checkout master)中,拉入最近的变化:git pull origin master这永远不会创建合并提交,因为我们永远不会直接在master中工作."
哎呀,我刚刚做了.我不小心对我的主人(对我的主题分支)提交了一些文件的一些更改.然后我意识到我的错误 - 删除了我的主题分支.现在我想摆脱我承诺的变化(对主人来说),做什么是正确的?我还没有重新定位或将我的更改推送到repo,所以它都是本地的.
本质上,我想要下载最新版本的主代码,而忽略我对本地主代码所做的一切(实际上是一次提交).
Mik*_*ler 11
如果你只想把它扔掉,当你在你的主分支上时:
git reset --hard HEAD^Run Code Online (Sandbox Code Playgroud)
此命令将主控器的HEAD指针重置为先前的提交.(你也可以说"HEAD~1",这意味着与HEAD ^相同.)更一般地说,你也可以将你的主人重置为与服务器相同:
git reset --hard origin/masterRun Code Online (Sandbox Code Playgroud)
无论master的状态如何(即5个提交源,或者30个提交),它都可以工作.--hard这些命令中的选项意味着工作树中的文件也将与分支头一起重置.
额外提示
如果您处于类似的情况,您实际上想要保留更改,您可以随时执行:
git fetch # This grabs changes from the server without merging them
git rebase originRun Code Online (Sandbox Code Playgroud)
这将在服务器上的最新更改之上重播您在master中的所有工作.
另一种方法是为master上的工作创建一个主题分支:
git checkout -b newfeatureRun Code Online (Sandbox Code Playgroud)
然后你可以切换回master(git checkout master)并使用我给的第一个命令来回退master返回一个提交.请记住,分支实际上只是存储库中提交的便捷名称.例如,master它只是对该分支上最新提交的引用.你可以随意移动这些引用,随着git越来越高级,你会发现自己经常这样做.
我还建议你养成gitk --all在玩树枝时运行的习惯,这样你就可以直观地看到你在做什么.当我是git的新手时,我一直都在运行这个命令.我仍然...
| 归档时间: |
|
| 查看次数: |
803 次 |
| 最近记录: |