相关疑难解决方法(0)

Git:准备好真正的合并提交后,如何创建一个简单的提交?

在调用之后git merge --no-commit <commit>,执行提交将导致与两个(或更多)父项的合并提交.调用什么命令来创建一个简单的提交(不必用--squash选项重新执行merge命令)?

git git-merge

6
推荐指数
1
解决办法
429
查看次数

审核评论后,Github squash在拉取请求中从Web界面提交?

假设我有5个提交的提交历史记录.我知道我可以在制作拉取请求时在本地重新提交我的提交,然后将它们重新绑定到单个提交中.

一个常见的用例是:

  • 进行本地提交,处理功能
  • 壁球提交
  • 提出请求
  • 收到评论意见
  • 适当更新PR

我可以在我的机器上本地执行此操作,然后再次推送我的更改(使用-f,因为rebase使其与远程控制器不同步).这有点烦人.

但是,这要求我每次处理评论评论时都要进行改动- 有什么方法可以通过Web界面进行此操作吗?

或者我的工作流程可能是错误的,我是否应该将我的每个"评论评论"提交直接修改为主PR提交?

git workflow github

6
推荐指数
1
解决办法
2463
查看次数

SVN中维护分支的工具

我的团队使用SVN进行源代码管理.最近,我一直在努力从树干偶尔合并一个分支,它一直是一个相当恼人的经验(参见乔尔斯波斯基的"颠覆故事#1"),所以我一直在寻找替代方法来管理分支与合并.鉴于集中式SVN存储库是不可协商的,我想要的是一组满足以下条件的工具.

  1. 完整的修订历史应存储在SVN中,用于中继和分支.

  2. 在任何一个方向(并且可能是纵横交错)的合并应该是相对无痛的.

  3. 合并历史记录应尽可能存储在SVN中.

我已经看过这两个git-svn并且bzr-svn似乎都没有达到工作 - 基本上,鉴于他们可以从SVN存储库导出的修订历史,他们似乎没有比SVN更好地处理合并工作.例如,用克隆库后git,我的分支修订历史记录显示原分公司关闭行李箱,但git没有"发现"任何临时SVN的合并为"原生"合并,修订历史是一个长行.因此,任何尝试从git收益中继合并收益与SVN合并一样多的冲突.(此外,git-svn文档明确警告不要使用git分支之间的合并.)

有没有办法调整我的工作流程以git满足上述要求?也许我只需要提示或技巧(或单独的合并工具?)来帮助SVN更好地融入分支机构?

svn git version-control merge branch

5
推荐指数
1
解决办法
284
查看次数

Git合并测试分支(最终提交)到主分支

我已经创建了一个测试分支。构建一个功能有很多微小的承诺。最后,我要进行最后完成的更改,并将其放入master分支中。
master分支不应包含测试分支的历史记录。
测试分支最终将被删除。

实现此目标的最佳方法是什么?
生成补丁并将其应用于master是最好的方法吗?
如果是这样,我如何生成/应用补丁?

git merge branch final

5
推荐指数
2
解决办法
1752
查看次数

git,在飞行中压缩提交

我有一个本地git仓库,一个远程仓库.自从上次从远程拉出以来,我向本地回购做了5次提交.

现在我需要推送到远程.我需要压缩我最近的5次提交.

我可以做到 git rebase -i HEAD~5

但这并不好.我不想在我的本地仓库中改变任何东西.我想将一个压扁的提交推送到远程,并在我的本地仓库中保留5个未更改的提交.

有任何想法吗?

UPD:如果我的本地仓库有5次提交怎么办?我需要创建新的远程仓库以与他人共享我的代码.如何压缩这个新回购的提交?

git rebase squash

5
推荐指数
2
解决办法
171
查看次数

不允许浅更新(git &gt; 1.9)

有很多答案表明 git 1.9 消除了浅克隆的限制。尽管如此,我使用的是 2.6.1 并且仍然存在以下基本问题:

首先,我在某处创建了一个空仓库:

cd /tmp
mkdir target
cd target
git init
Run Code Online (Sandbox Code Playgroud)

然后,我浅克隆一些 repo 并将上述 repo 添加为远程:

cd /tmp
git clone --depth 1 git@github.com:muennich/urxvt-perls.git
cd urxvt-perls
git remote add target /tmp/target
Run Code Online (Sandbox Code Playgroud)

最后,我将这个 repo 推送到远程:

git push target master
Run Code Online (Sandbox Code Playgroud)

但后来我得到:

! [remote rejected] master -> master (shallow update not allowed)
error: failed to push some refs to '/tmp/target'
Run Code Online (Sandbox Code Playgroud)

我在这里缺少什么?

git

5
推荐指数
2
解决办法
6744
查看次数

Bundle提交/保持提交私有

我想在推送时保留一些私有提交,所以我希望它们被捆绑到远程端的一个大提交中.在当地,他们应该保持分裂.

用例例如是静态博客上的工作.草案步骤应该在本地提交和跟踪,但在推送时我只想发布已发布的版本.

将接受git和/或mercurial的解决方案.

git mercurial

4
推荐指数
1
解决办法
389
查看次数

将一系列小提交重新定义为逻辑单元提交

在某些设置中,我习惯在本地使用git,然后导出diff,然后提交详细说明.因此,当我在本地开发时,我会不断提交,并且在提交之前不会打扰有意义的提交消息或完美测试.

但是,当使用git在github上发布代码时,我宁愿删除那些小提交的历史记录,只创建一个表示经过良好测试的逻辑更改的提交.

什么是实现这一目标的最佳方式,只要我觉得我已经探索了一条小路径(无论如何未经证实),而不改变我当地的工作流程?

git

3
推荐指数
1
解决办法
1400
查看次数

标签 统计

git ×8

branch ×2

merge ×2

final ×1

git-merge ×1

github ×1

mercurial ×1

rebase ×1

squash ×1

svn ×1

version-control ×1

workflow ×1