由于此错误,我在将更改从本地主服务器推送到远程主服务器时遇到问题:
remote: Processing changes: refs: 1, done
To ssh://xxxxx@gerrit.dev.xxxxx.net:29418/xxxxxx
! [remote rejected] HEAD -> refs/for/master (change 14823 closed)
error: failed to push some refs to 'ssh://xxxxx@gerrit.dev.xxxxx.net:29418/xxxxxx'
Run Code Online (Sandbox Code Playgroud)
任何想法如何解决这个问题?
git status表示我的分支在5个提交之前超过origin/master.
可能重复:
如何使用git将我最后的X提交压缩在一起?
我有一个在GitHub上托管的项目,我有一个本地克隆.我有很多小提交,我已经推到了GitHub.这一切都是使用默认的*master分支完成的.
我在merge -squash和rebase等之间感到困惑...将一些历史提交组合到一个提交中的最直接的方法是什么,以便它推送到GitHub?
如果标记为已修改的暂存文件,如何清理repo
后
git reset --hard
我明白了
遇到了应该是指针的7个文件,但不是:
git clean -fdx
也没有帮助
所以我正在与一个团队合作开展敏感项目,我们所有的资源都在Github上.我最近推了一个提交,后来意识到我的推动有很多错误.我已经修复了我本地副本上的所有错误,并准备再次推送.但是有什么方法可以推送和覆盖我的上次提交吗?我的理由是,我不希望其他人查看我的初始提交及其所做的更改......
基本上我想用我的新提交覆盖旧提交..所以没有关于旧提交的信息仍然可供其他组成员查看.
任何帮助将不胜感激!谢谢.
注意:只是注意到这个问题被标记为重复.为了澄清,我的问题是覆盖已被推送的提交.我的问题不是改变不正确的提交消息.
我在同一个分支上有两个提交,一个接一个.我将对文件A的更改添加到第一次提交,然后我对其他文件进行了一些更改,然后进行了另一次提交.现在我希望文件A的更改在第二次提交而不是第一次提交.什么是最优雅的方式?
有没有办法压缩并将master合并到同一个分支中?有效地获取所有挂起的提交并将它们置于1次提交中?
我最初的想法是一个脚本,它采取my-branch并做一个git checkout master && git pull && git checkout my-branch-squashed然后 git merge --squash my-branch(处理任何合并冲突),然后最终删除my-branch并重命名my-branch-squash为my-branch
这似乎非常圆,可能不好,所以我试图看看是否还有其他方法.我试图解决的意图是,当我在github上放置分支并将它们"压缩并合并"到master中时,本地机器上存在的分支与合并到master中的分支不匹配,因此在使用git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -r git branch -d; 它时没有正确删除已合并为master的分支.我想要的是一种自动删除已合并为master的旧分支的方法
我和Git有一个奇怪的设置.基本上我有:
[client 1] <---> [remote repo] ----> [client 2]
Run Code Online (Sandbox Code Playgroud)
[客户端1]本质上是我正在使用的本地仓库,因为我无法在本地机器上编译/构建项目.
[客户端2]是用于构建的远程服务器.
在中间,我有另一个回购,[远程回购],基本上用于与我公司的cvs中央回购同步,并且还在我的[客户端1]和[客户端2]之间进行同步.
由于所有编译/构建都在[客户端2]上完成,因此我在[客户端1]上进行了许多简单的提交,只是为了修复编译或构建错误.
所以当我发现最后一次提交时出现错误时,已经太晚了,因为提交已经被推送到远程仓库并从中撤出.
我怎样才能将这些(很多)琐碎的提交压缩成一个?谢谢.
我有大量的提交,大约20个,自从我上次推出origin/master以来我已经完成了.我从来没有过多个分支,主,所有提交都是在master上完成的.如何将所有20个提交压缩到一个提交中,最好使用sourcetree?我想这样做,所以我可以将一个提交推送到origin/master.
在sourcetree中,我已经想到在存储库菜单中使用交互式rebase命令.它会显示我想要压缩的确切提交列表.我尝试反复按下壁球按钮,直到它显示一个包含所有这些按钮的提交.但是当我点击OK时,我最终只得到两个最近提交的提交.因此,即使对话框似乎表明它可以在实践中压缩多个,但我无法让它工作.
我的Git repo有数百GB的数据,比如SQL备份,所以我试图删除旧的,过时的提交,因为它们会使一切变得越来越大.我需要一个快速的解决方案; 越快越好.
除了最新的提交之外,我如何压缩所有提交,而不必在交互式rebase中手动压缩每个提交?具体来说,我不想使用
git rebase -i --root
Run Code Online (Sandbox Code Playgroud)
我有这些提交:
A .. B .. C ... ... H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)
我想是这样的(在两者之间挤压的一切A,并H进入A):
A .. H .. I .. J .. K .. L
Run Code Online (Sandbox Code Playgroud)
有关如何压缩所有提交的答案,但我想保留一些最近的提交.我也不想压缩最近的提交.(特别是我需要保持前两个提交从顶部开始计数.)
我有一个本地分支,我们正在使用带有Pull请求的git-flow,我希望在收到PR反馈后压缩一些提交.
如何将我的所有提交(例如PR)压缩到同一个分支中?
我想它会是这样的:
git checkout master # For master
git pull # Get all branches up-to-date
git checkout feature1 # Checkout the branch
git checkout -b feature1_squash # Make a copy of the branch
git branch -D feature1 # Delete original branch
git checkout master # (?) Branch off latest master for safety
git checkout -b feature1 # Make new (empty) original branch
git merge --squash feature1_squash # Merge with squash into it
git push -f feature1 # Push, force …Run Code Online (Sandbox Code Playgroud) git ×10
github ×3
gerrit ×1
git-branch ×1
git-checkout ×1
git-lfs ×1
git-merge ×1
git-rebase ×1
git-squash ×1
rebase ×1
squash ×1