在Intellij中使用Git时,如何压缩本地分支的所有提交?我在rebase分支窗口中使用了哪些设置?
我已经尝试将Onto设置为本地/主设备和从设置到我的分支,但随后它会尝试将主设备更改合并到我的分支中,因为我每天早上都会将我的分支转换为主设备...所以不应该有冲突.然而,它几乎总是发现冲突并导致合并问题.我只想要压缩分支提交和消息,所以当我推送到Github时它只能看到一个.
最近离开的一位开发人员在几个月前的回购中留下了大量的提交,就像"更新"一样.理想情况下,我想将它们压缩成一个提交,但我只是为最近的提交做了这个.
我将如何做以下提交(假设从2个月前意味着有数百个)?
....从2个月前
aabbcc updated
aabbdd updated
aabbee updated
aabbff updated
Run Code Online (Sandbox Code Playgroud)
不想/需要任何花哨的东西,只是一个简单的解决方案.这些提交尚未公开分享(除了我今天以外),因此不会扰乱其他人的提交历史.
如果我提交A了标记为 eg 的提交tag-A,然后下一个提交B标记为tag-B; 如果我压缩这 2 个提交,标签会发生什么?两者都会被分配到被压扁的提交吗?
修改和壁球命令有什么区别?我试过这两个,发现两者都在做同样的管理.
自从GitHub引入Squash和Merge之后,我工作场所的所有酷孩子都在合并拉取请求时使用它.有没有办法清理"壁球和合并"分支?
以下命令如何删除已合并的所有git分支?不适用于"壁球和合并":
git branch --merged | egrep -v "(^\*|master|dev)" | xargs git branch -d
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很新,所以我一直在试图弄清楚如何将3次提交压缩为1,这样我的PR就可以合并了.我已经阅读了很多文档和指南,并且发现了如何压缩提交,但我的一个提交没有显示出来.当我输入时,我尝试附上我的提交照片和我终端的照片:"git rebase -i HEAD~5",但不幸的是我是新用户,所以我不能?但无论如何,我会非常感谢一些帮助.
我有一个包含 5 次提交的合并请求,全部推送到 GitLab 上的分支。我想将这 5 次提交压缩为 1 次——但是其他人对存储库进行了中间提交。例如,在 git log 中,您可能会看到
my5thcommitsha
my4thcommitsha
someoneelse'scommitsha
someoneelse'scommitsha
my3rdcommitsha
my2ndcommitsha
my1stcommitsha
Run Code Online (Sandbox Code Playgroud)
我已经将我的分支重新设置为我尝试合并到的存储库主分支上的最新提交。
现在,我只想压缩我的 5 次提交,这样 GitLab 上的内容就更干净了——我该怎么做呢?
合并按钮旁边的“squash commits”复选框是否会创建单个提交,还是会创建两个提交(1 个提交包含我的 5 个提交,+ 一个合并提交)?
我已经创建了 2 个对远程dev分支的提交。我将其压缩并合并到远程master分支中。
现在,当我想继续在dev分支上工作时 - 我不知道如何正确“修复”我的分支 - 因为在从 到 创建新的拉取请求之后,dev我master得到了在先前拉取请求中被压缩的所有提交的列表。
我有这样的事情:
O ---- A ---- B ---- XY <--(master)
\
X ---- Y ---- Z <--(development)
Run Code Online (Sandbox Code Playgroud)
如何使用 commit Z from devto创建正确的拉取请求master?
当使用 合并分支时--squash,git 似乎不再能够确定分支是否已完全合并。如何使用现有的 git 命令快速检查这一点?
要重现,请创建一个新的 git 存储库:
$ mkdir tmp
$ cd tmp
$ git init
$ echo "bla" > ans
$ git add .
$ git commit -m "First commit"
Run Code Online (Sandbox Code Playgroud)
创建new-branch带有提交的分支:
$ git checkout -b new-branch
$ echo "blabla" >> ans
$ echo "blupp" > zwa
$ git add .
$ git commit -m "Commit on new-branch"
Run Code Online (Sandbox Code Playgroud)
创建another-branch带有提交的分支:
$ git checkout master
$ git checkout -b another-branch
$ echo "test" >> ans …Run Code Online (Sandbox Code Playgroud) git ×10
git-squash ×10
github ×3
git-branch ×2
git-commit ×2
merge ×2
squash ×2
git-amend ×1
git-checkout ×1
git-merge ×1
git-tag ×1
gitlab ×1
intellij-14 ×1