标签: fast-forward

Git快速合并:有没有机会找到这个人的责任?

假设有一个功能分支'my-feature'.在我开发这个功能时,有人将它从'my-feature'合并到'master'中.因为它是一个快进合并,所以没有提交.我所做的一些改变还没有为主人做好准备,当它被推到掌握时它打破了相当多的测试.然而,由于这些变化显然是由我做出的,我被指责,而不是那个进行快速合并的人(无论是谁).

有没有机会找出谁将'my-feature'合并为'master',即使它是一个快速合并?我怎样才能防止将来发生这种情况?

git reflog显然只显示本地发生的事情.我们正在使用gitlab服务器,但我还没有找到一种方法来检查gitlab的存储库的reflog.有任何想法吗?

git merge fast-forward gitlab

10
推荐指数
1
解决办法
415
查看次数

确定合并是否将通过快进解决

我想知道在运行merge命令之前是否通过"快进"解析特定合并.

我知道我可以通过"快进"(使用--no-ff选项)专门请求合并不能解决.或者我可以尝试仅通过快进(使用--ff选项)来解决合并.

但有时我想知道在运行它之前是否会通过快进解决特定的合并.我意识到理论上我可以通过挖掘历史树来解决这个问题.而且我也意识到我可以运行合并,看看会发生什么,但如果我决定我更倾向于以其他方式解决合并,这就成了问题,因为我必须撤消合并(通过重新分配分支标签)在ref-log中)并再次执行.

注意:--dry-run问题(是否存在git-merge --dry-run选项?)更多的是关于查看合并中可能存在哪些合并冲突,而不是关于可能通过快进解决的合并.

git merge fast-forward

9
推荐指数
1
解决办法
1946
查看次数

Gerrit代码审查推送到空仓库不起作用

我安装并配置了自己的Gerrit服务器.我使用web gui为Gerrit创建了一个存储库.我能够使用"git"命令成功克隆这个空的存储库,所以配置似乎没问题.接下来,我:

  1. 配置我的访问:git config --global user.email ...,git config --global user.name ...,

  2. 添加的远程:git add remote origin myUser@myGitHost:29418/project.git,

  3. 创建并提交文件:git add file,git commit -m "first commit".

到现在为止还挺好.

但是,当我尝试将其推送到我的仓库时,我得到输出:

myUser@myGitHost:~/project$ git push origin master
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (6/6), 525 bytes, done.
Total 6 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
To ssh://myUser@myGitHost:29418/project.git
 ! [remote …
Run Code Online (Sandbox Code Playgroud)

git push gerrit fast-forward

8
推荐指数
1
解决办法
6241
查看次数

从远程拉出时快进意味着什么?

我跑git pull两次并得到以下内容:

$ git pull
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0)
Unpacking objects: 100% (1/1), done.
From git.assembla.com:my-project
   da3f54c..bb335a4  master     -> origin/master
Updating 5934c67..bb335a4
Fast-forward

$ git pull
Already up-to-date.
Run Code Online (Sandbox Code Playgroud)

如何理解这个输出?

git git-pull fast-forward

8
推荐指数
1
解决办法
8091
查看次数

git rebase master然后推送origin分支导致非快进错误

我正在尝试使用我的featureA分支,同时使其与主分支保持同步.

这是场景

git clone ssh://xxx/repo

git checkout -b featureA

$ git add file.txt

$ git commit -m 'adding file' 

$ git push origin featureA
Run Code Online (Sandbox Code Playgroud)

同时有几个新的提交被推到了原点大师

git checkout master

git pull origin master

git checkout featureA

git rebase master

git push origin feature A
To ssh://xxx/repo
 ! [rejected]        featureA -> featureA (non-fast-forward)
error: failed to push some refs to 'ssh://xxx/repo'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See …
Run Code Online (Sandbox Code Playgroud)

git branch rebase fast-forward

7
推荐指数
2
解决办法
7257
查看次数

如何防止非快速推送到git中的选定分支?

我想保护我的git存储库,因此只能覆盖非主分支.有没有办法只保护选定的分支?

git git-push fast-forward

7
推荐指数
2
解决办法
6071
查看次数

git与--no-ff和--squash合并

我正在使用git flow方式管理我的仓库中的分支,如下所述:http: //nvie.com/posts/a-successful-git-branching-model/

因此,我应该使用的命令序列如下:

git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff mybranch
Run Code Online (Sandbox Code Playgroud)

但是,有些事情我想以不同的方式做,在某些情况下:

我想保留我的功能分支(mybranch)上的所有提交,但是在合并时将它们混合在一起(或压扁)成一个差异develop.

所以这就是我认为命令序列应该是:

git checkout mybranch
git pull --rebase origin develop
git checkout develop
git merge --no-ff --squash mybranch
Run Code Online (Sandbox Code Playgroud)

如果我要--no-ff与之结合,我会做错事--squash吗?

我犹豫是否尝试这样做源于"挤压"和"保存历史"是如何正交的要求 - 请参阅将我的所有提交(包括合并)压缩到一个提交而不改变历史记录

我的理由是,我想在一个分支(mybranch)上保存历史记录,并在另一个分支(develop)上继续suqash - >因为这些动作是在不同的分支中执行的,这是可以的.

git merge branch squash fast-forward

7
推荐指数
1
解决办法
2379
查看次数

Git推送无法快速合并是什么意思?

有人可以提供一个简单的例子,说明什么会导致Git推送到中央仓库失败,因为快进不会发生?为了让这种情况发生,本地回购与中央回购国的状态需要是什么样的呢?真的无法想象这个......

git merge git-merge fast-forward

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

关闭常规合并的快进合并,但不是拉

我希望git --no-ff在我使用时总是进行merge commit()git merge,但保留默认行为(--ff)git pull.这是可能的(配置)?

git git-merge fast-forward

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

Gitlab合并请求快进合并

我正在尝试使用gitlab-ci为我的团队设置gitlab worflow.我们有一个Gitlab CE版本10.2.4,gitlab CI配置为在每次推送时运行构建.现在我们想将合并请求工作流与受保护的开发和发布分支一起使用.我们的要求是,如果不首先在gitlab-ci上运行以保持这些分支清洁,则不能将代码合并到这些分支中.

由于gitlab似乎没有自动测试合并请求的可能性,我们唯一的选择是使用Merge commit with semi-linear history或者Fast-forward merge.(参见gitlab上的公开问题)

问题是由于这些合并选项需要快进,如果为同一目标分支创建了多个合并请求,则接受一个合并请求会更改目标分支.这会阻止其他合并请求被合并,因为它们不再是快进的.这意味着每次我们接受合并请求时,我们必须将所有其他合并请求与目标分支重新绑定/合并,这非常繁琐.

任何人都Fast-forward merge可以在gitlab上使用选项解释他们如何处理这个多合并请求场景?或者是否有另一种方法可以确保在合并之前测试代码而不需要快进?

fast-forward gitlab

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

标签 统计

fast-forward ×10

git ×9

merge ×4

branch ×2

git-merge ×2

gitlab ×2

gerrit ×1

git-pull ×1

git-push ×1

push ×1

rebase ×1

squash ×1