`

Git 关于Fast Forward提交的简单说明

    博客分类:
  • Git
git 
阅读更多

多人协同开发,使用Git经常会看到警告信息包含术语:fast forward, 这是何义?

简单来说就是提交到远程中心仓库的代码必须是按照时间顺序的。

比如A从中心仓库拿到代码后,对文件f进行了修改。然后push到中心仓库。

B在A之前就拿到了中心仓库的代码,在A push成功之后也对f文件进行了修改。这个时候B也运行push命令推送代码。

会收到一个类似下面的信息:fast-forwards' section of 'git push --help' for details.  

chenshu@sloop2:~/work/189/appengine$ git push  
To ssh://csfreebird@10.112.18.189:29418/appengine.git  
 ! [rejected]        master -> master (non-fast-forward)  
error: failed to push some refs to 'ssh://csfreebird@10.112.18.189:29418/appengine.git'  
To prevent you from losing history, non-fast-forward updates were rejected  
Merge the remote changes (e.g. 'git pull') before pushing again.  See the  
'Note about fast-forwards' section of 'git push --help' for details. 

 
提醒你非快进方式的更新被拒绝了,需要先从中心仓库pull到最新版本,merge后再push.

 

fast forward能够保证不会强制覆盖别人的代码,确保了多人协同开发。尽量不要使用non fast forward方法提交代码。

 

http://blog.csdn.net/csfreebird/article/details/7916625

分享到:
评论

相关推荐

    git fast_forward

    Fast forward合并发生在没有新提交被创建的情况下,也就是说,当你将一个分支(比如feature分支)合并到另一个分支(比如master分支)时,如果目标分支(master分支)在被合并分支(feature分支)创建之后没有新的...

    git笔记git笔记git笔记git笔记git笔记git笔记git笔记git笔记

    - 当执行合并时,默认情况下Git会采用Fast-forward模式,即直接将当前分支指针移动到目标分支的最新提交点。如果希望保留分支历史,则可以通过以下步骤禁用Fast-forward: 1. 创建一个新分支`dev`。 2. 在`dev`...

    git廖雪峰教程整理

    - 禁用fast-forward模式合并分支使用`git merge --no-ff -m "comments" <devbranch>`命令。 9. 解决冲突 - 当合并分支时,可能会产生代码冲突,需要手动解决这些冲突后再提交。 10. 分支管理策略 - 通常使用...

    git文件存放结构思维导图

    "Git文件存放结构思维导图" Git是一个版本控制系统,通过对文件的存储和管理来实现对项目的版本控制。...Git合并策略包括Recursive、Fast-forward、rebase和git merge等,选择合适的策略可以快速地合并分支。

    10个Git命令 硬件工程师电路分析物联网模电单片机嵌入式技术.doc

    Fast-forward合并发生在当前分支比目标分支多出零个提交时,Git会简单地将目标分支的头部移动到当前分支。而no-fast-forward合并则在两个分支有不同提交时创建一个新的merge commit,将两个分支的提交历史连在一起。...

    git命令.pdf

    分支合并时,如果要取消快转(fast-forward)机制,可以使用 `git merge branchname --no-ff`。在合并非快转状态下,Git会创建一个新的合并提交,即使当前分支落后于目标分支仅有一个提交。 远程仓库管理是协同开发...

    什么是GIT.pdf

    如果需要禁用Fast forward模式,可以使用git merge --no-ff -m "注释" <要合并的分支>以保留分支的合并历史。 五、强制操作与重命名 1、强制删除分支 如果尝试删除一个未合并的分支,Git会阻止该操作,但是可以使用...

    GIT常用命令整理

    - **`git merge --no-ff -m "merge with no-ff" <branch>`**: 禁用快进合并(Fast-forward)。此选项用于保留分支的历史记录,使得合并后的提交历史更加清晰。 - **`git branch -d <branch>`**: 删除分支。当你完成...

    Git使用详细教程-Git分支管理.pdf

    而是fast-forward,此时我们再查看dev分支最新的commit id会发现和刚刚在主分支最新的commit id一样,dev分支只是采用了fast-forward方式更新了commit id,道理很简单,因为在master我们解决冲突后做了提交,...

    Git速查手册.pdf

    - 默认情况下,`git merge`会尝试快速前进(fast-forward),即直接将目标分支指向合并后的结果。如果希望保留分支历史记录,则使用 `git merge --no-ff <branch-name>`。 - **拒绝合并不相关的提交历史**: - 当...

    git分支原理命令图文解析

    - **“Fast-forward”(快进)式合并**:如果要合并的分支是当前分支的直接下游,Git会直接将当前分支的指针移到下游分支的末尾。 - **基本合并**:当两个分支的最后共同祖先不位于其中一个分支的末尾时,Git会创建一...

    git常用命令文档

    默认情况下,合并会使用快速前进模式(`fast-forward`),如果希望保留分支历史,可以使用非快速前进合并。 #### 九、冲突处理 **13. 解决冲突** - **说明**: 当两个分支合并时出现冲突,需要手动解决冲突后再提交...

    史上最全的git解决冲突

    1. 当执行推送(push)操作时遇到`rejected--non-fast-forward`错误提示,表示存在冲突。 2. 从远程仓库拉取最新的代码。 3. 使用Git的Merge功能手动解决冲突。 4. 解决冲突后,再次执行提交(commit)和推送(push)操作...

    git常用操作

    - **功能**:将暂存区的所有更改正式提交到仓库,并附带提交说明。 - **应用场景**:当准备好将更改保存为仓库的历史记录时使用。 - **示例**: ```shell git commit -m "Update README file" ``` #### 四、查看...

    详解git merge命令应用的三种情景

    当切换回master分支并合并dev分支时,由于master可以直接快进到dev分支的最新提交B4,Git会简单地将master指针移动到B4,并且合并结果如以下代码所示: ```bash $ git checkout master Switched to branch 'master'...

    git仓库迁移(所有分支)脚本,git合并dev分支到master分支脚本

    `--no-ff`选项防止fast-forward合并,这样可以保留合并记录。 3. **解决冲突**:如果有任何冲突,Git会提示你手动解决。打开冲突文件,根据需要编辑,然后添加并提交解决后的文件。 ``` git add git commit -...

    Git 常用命令(B站作者:GeekHour)

    - **禁用Fast Forward模式**:`git merge --no-ff -m "message" <branch-name>`。 - **说明**:合并分支时不采用Fast Forward方式,从而保留分支合并的历史信息。 - **Rebase操作**:`git rebase <branch-name>`...

    git常见命令.pdf

    Git还提供了非常强大的分支合并策略,包括快进式合并(Fast-forward merge),以及更复杂的非快进式合并(Non-fast-forward merge)。在冲突发生时,Git能够提供合并工具,帮助用户解决代码冲突。 Git作为分布式...

Global site tag (gtag.js) - Google Analytics