说我做了几次提交,并希望能够选择我推送到远程存储库的那些提交.我怎么能这样做(在ascii:C1-> C2-> C3-> C4,我想推C2和C4).是否会重新订购rebase,重置,推送然后重置工作?(C1-> C2-> C3-> C4 => C2-> C4-> C1-> C3 =>复位C4 => push =>复位C3).有更好的方法吗?
我们第一次尝试将一个大型Rails项目部署到Heroku,但是在Heroku编译过程中出现了一些问题,我们无法知道什么.
所以现在我们要计划B,这是为了走向提交链并测试部署Heroku的每一步,直到我们弄清楚它在哪一点变得不可编译.(是的,这是我现在能想到的最好的.)
所以我想我只是在本地克隆项目,检查一些旧的提交,并推送到heroku.但后来我发现,如果我从除了主人之外的任何东西推送到heroku,它不构建应用程序?相反它说:"推向非主分支,跳过构建."
所以,现在即使是糟糕的计划也不是首发.我只是想在这里休息一下.关于如何做我想做的事情的任何想法?
我使用代码在本地存储库中提交了2次或更多次
git commit -m "message 1"
git commit -m "message 2"
git commit -m "message 3"
Run Code Online (Sandbox Code Playgroud)
现在我有三个提交跟随SHA
commit-1 SHA1
commit-2 SHA2
commit-3 SHA3
Run Code Online (Sandbox Code Playgroud)
但我想只commit-2使用git push在远程存储库中推送.
如果我运行git push,那么它将推送所有提交.
我也尝试了以下命令:
git push SHA2
Run Code Online (Sandbox Code Playgroud)
但这也推动了所有提交.
如何仅commit-2在远程存储库中推送它?
从这里http://blog.prabir.me/post/Undo-in-Git.aspx,它说
This undo’s your commit and also resets your working tree to the last commit.
1 git reset --hard HEAD^
Run Code Online (Sandbox Code Playgroud)
但是,在我做了'git push'之后,我怎么能不做我的最后一次提交?
谢谢.
当我做'git log'时,我得到了我的最高提交
commit 29fc764693a5933a379169e22891e4b0d3d2426f
Merge: 002db49 cfb1d8f
Run Code Online (Sandbox Code Playgroud)
我怎样才能'恢复'那种变化?
我明白了
$ git revert HEAD
fatal: Commit 29fc764693a5933a379169e22891e4b0d3d2426f is a merge but no -m option was given.
Run Code Online (Sandbox Code Playgroud) 我正在我的计算机上的开发分支上工作。我做了很多不想推动的改变,但我想保留它们。我所做的是在我的项目中更改翻译器行为,我想在推送它并将其部署到生产之前对其进行更长时间的测试。但我想继续在开发或任何其他分支上工作,并能够应用这些更改。
我提出了一些想法:
保留所有这些文件(不要 git-add 它们)并只提交我真正想要提交的文件。但是这个解决方案使我的“git status”非常混乱(很多修改过的文件),我相信它会产生错误并导致提交错误的文件。
Git stash 保存“翻译”并在我想使用它时应用它。但是我会在混乱的 git 状态中遇到同样的问题,我将不得不选择我想要提交或不提交的文件之一。
创建一个带有我的新功能的新分支,但是一旦我将它合并到我的工作分支,我将同时提交合并
您是否知道任何其他工作流程来保留对大量文件的更改列表并应用/删除这些更改?