目录
■Merge时出现问题 (Eclipse中)
■原因
■解決
■解決 方案一 (GitBash命令行)
■解決 方案二 (TortoiseGit) (采用此方案,解决了!)
●TortoiseGit中的Merge选项设置
●Eclipse Git plugin中的Merge选项 (只是用作和上面对比)
■解決 方案三
■其他
●Git的Merge选项
●Squash
①Fast-forward
②【M】--no-ff // non-Fast-forward // git merge
③【N】--ff-only Fast-forward 模式:
●Git的三个工作区域
●Git的三中Reset操作
●Git的三中Reset操作之---Hard---命令行操作 &【更多Git命令!!!】
■Reset使用场景 (取消本地的Commit)
■更多命令行操作
No merge base could be determined. Reason=CONFLICTS_DURING_MERGE_BASE_CALCULATION.
Multiple commond ancestors were found and merging them resulted in a conflict:
ae808ae08a0e8a08e0a, adad808eae8a0e8a // 提交的commitID
No merge base could be determined.
Reason=CONFLICTS_DURING_MERGE_BASE_CALCULATION.
Multiple commond ancestors were found and merging them resulted in a conflict:
// determined. [dɪˈtɜːmɪnd]
adj. 决心; 决定; 决意; 坚定的;
v. 查明; 测定; 准确算出; 决定;
网上说这是Eclipse Git plugin的一个bug。 确实如此!
eclipse - Multiple common ancestors were found and merging them resulted in a conflict - Stack Overflow
1.gitbushロックイン
git pull
执行上面的命令后,便会让你输入用户,密码
2.切换branch
git checkout master
3.查看当前Brach (查看当前 所在分支)
git branch // 查看分支
git log // 查看提交记录
git log -2 查看最近2次的提交历史记录
git status // 查看当前 所在分支
执行切换分支命令时,Eclipse中的工程会跟着变化
4.下記コマンド実行
git merge --no-commit origin/dev_branchname
■備考 (方案一)
#形式一
git merge [-n] [--stat] [--no-commit] [--squash] [--[no-]edit]
[--no-verify] [-s
[--[no-]allow-unrelated-histories]
[--[no-]rerere-autoupdate] [-m
#形式二
git merge (--continue | --abort | --quit)
使用 Tortoise (Merge)
不需要登录Git,(但是需要输入用户名和邮箱即可)
Merge操作是在本地的Git上进行的。
---
---
(初次使用时才有)
---
(初次使用时才有)
---
Merge之后,Eclipse中,会显示Merge的代码,在【stage】区域,
检查代码之后,就可以在Eclipse中提交了。
Eclipse中的Merge设置,可以参照下面内容
GIT命令行的一些基本操作_sun0322-CSDN博客
---
---
换一个版本的 Eclipse
(多个commit记录合并成一个提交记录)
git merge コマンドを実行するときに、
--squash オプションを指定すると、
ブランチ先でのすべてのコミットを1つにまとめて、
現在チェックアウトしているブランチにステージングすることができます。
---
是指 Master 合并 Feature 时候发现 Master 当前节点一直和 Feature 的根节点相同,
没有发生改变,那么 Master 快速移动头指针到 Feature 的位置,
所以 Fast-forward 并不会发生真正的合并,【只(only)】通过移动指针(pointer)造成合并的假象,
这也体现 git 设计的巧妙之处。
(如果不匹配则执行 --no-ff(non-Fast-forward) 合并模式)
当合并的分支跟 master 不存在共同祖先节点的时候,这时候在 merge 的时候 git 默认无法使用 Fast-forward 模式,
git自己【Merge代码】
只会按照 Fast-forward 模式进行合并,如果【不符合】条件(并非当前分支的直接后代),则会拒绝合并请求并且推出
---
1.Working
Working Tree 当前的工作区域
2.Stage
(先把代码添加到这里,然后提交)
Index/Stage 暂存区域,和git stash命令暂存的地方不一样。
使用git add xx,就可以将xx添加近Stage里面
3.Repository
Repository 提交的历史,即使用git commit提交后的结果
git reset 的三种模式的使用场景_雕牌咸鱼的博客-CSDN博客_git reset 三种模式
①git reset --soft
②git reset --mixed
③git reset --hard
③git reset --hard
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commit_id 退到/进到,指定commit的哈希码(这次提交之前或之后的提交都会回滚)
●登录
git pull // 输入这个命令后(其他命令应该也行),会让你输入用户名,密码
●查看分支
git branch // 查看分支
●切换到你的分支,并确认
git checkout branch_name // 切换到你要合并的分支,并拉取最新的代码
git status // 查看当前在
●查看提交记录
git log -2 查看最近2次的提交历史记录
●回退命令:
git reset --hard HEAD^ 回退到上个版本
git reset --hard HEAD~3 回退到前3次提交之前,以此类推,回退到n次提交之前
git reset --hard commitID 退到/进到,指定commit的哈希码(这次提交之前或之后的提交都会回滚)
・本地Git仓库,已经有了Commit的记录
・本地的Commit,没有PUSH。(即,远程git仓库,没有这条记录)
这时,在Ecliplse中,按照下面方式操作,是无法回退到远程Git的最新版本的
需要在回退时,指定,远程Git的最新版本的CommitID,才能回退。
比如,Head时,使用如下命令,取消本地的Commit
git log -2 查看最近2次的提交历史记录 // 获得commitID
git reset --hard commitID
---
GIT命令行的一些基本操作_sun0322-CSDN博客
---