让我在这里解释一下这个问题: -
1)我创建了一个新分支:
git checkout -b <newbranch>
2)我在这个分支中修改了file1.tcl并提交了它(直到现在都没有推送)
3)现在我必须处理另外两个单独的文件,我应该为它创建一个单独的分支但是我错误地开始处理同一个<newbranch>
并且同时提交了这两个文件(file2.tcl和file3) .tcl)来自同一个分支
5)现在回到<newbranch>
,因为我想从这里推送file1.tcl中所做的更改,问题是我可以看到,如果我现在推送file1.tcl ... file2 .tcl和file3.tcl也会进入PUSH。所以我想以某种方式从我的git-push堆栈中取出这两个文件
gourabm@lb4b13-pc-01(eRx)$ git diff --stat --cached origin/master
eRx/lib/file1.tcl | 3348 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------
eRx/bin/file2.tcl | 1 -
eRx/lib/file3.tcl | 75 +++---
3 files changed, 1978 insertions(+), 1446 deletions(-)
请建议我一个简单而安全的方法从我的git-push列表中取出这两个文件,这样他们就不会进行推送,只有一个file1.tcl进入推送
答案 0 :(得分:1)
git reset --hard HEAD^1
将删除file2.tcl和file3.tcl中包含更改的提交。现在
答案 1 :(得分:0)
你试过吗
git revert {commit-that-changed-file2.tcl}
git revert {commit-that-changed-file3.tcl}
git commit -m "undoing extra changes"
根据我的理解,git应该撤消这些提交中的更改,并允许您在推送之前重新提交这些更改,因此您的遥控器应保持不受影响。