我有一个git分支调用9-sign-in-out完美的代码,我想把它变成主.我现在在主分公司.
$ git branch
9-sign-in-out
* master
Run Code Online (Sandbox Code Playgroud)
我正在尝试切换到9-sign-in-out分支,但它不允许我:
$ git checkout 9-sign-in-out
app/helpers/application_helper.rb: needs merge
config/routes.rb: needs merge
error: you need to resolve your current index first
Run Code Online (Sandbox Code Playgroud)
任何想法如何忽略所有主分支错误并将9-sign-in-out分支转换为主分支?也许是git rebase?但我不想丢失9-sign-in-out分支中的代码.
我在这里遇到了一个问题:我28s在Git中有一个特定于问题的分支,我在一般develop分支中合并.事实证明我做得太快了,所以我使用git-revert来撤消合并.然而,现在是合并的时候28s了develop,但是git-merge命令看到了原始的合并,并且愉快地宣布一切都很好并且分支已经合并.现在我该怎么做?创建'还原'还原"28s - >开发""提交?似乎不是一个很好的方法,但我现在无法想象任何其他.
树结构是什么样的:

最近我使用的是GitExtension 2.46,但具有相同功能的Git版本是1.9.4.msysgit.2.我只想使用Git命令,我卸载了GitExtension并安装了Git和KDiff3的最新版本.
当我进行合并并发生冲突时,我运行以下命令:
$ git mergetool
Run Code Online (Sandbox Code Playgroud)
然后我收到消息:
合并工具kdiff3不能用作'kdiff3'.
我猜它必须是KDiff3路径.
环境
问题:
我必须在.gitconfig文件中配置如何$ git mergetool使用版本LOCAL,REMOTE,BASE和MERGED冲突文件打开KDiff3 GUI 的命令?
如何配置它使用它有diff-tool?
我创建了一个dialog分支,当我尝试将它合并到master分支时.有2个冲突.我不知道该如何解决CONFLICT (delete/modify).你能告诉我该怎么办?
$ git checkout master
$ git merge dialog
CONFLICT (delete/modify): res/layout/dialog_item.xml deleted in dialog and modified in HEAD. Version HEAD of res/layout/dialog_item.xml left in tree.
Auto-merging src/com/DialogAdapter.java
CONFLICT (content): Merge conflict in src/DialogAdapter.java
Automatic merge failed; fix conflicts and then commit the result.
Run Code Online (Sandbox Code Playgroud)
我打开了src/DialogAdapter.java,解决了冲突并做了一个git add src/DialogAdapter.java.我还需要做什么?
让我们假设我们有一个master分支.
然后我们创建一个 newbranch
git checkout -b newbranch
Run Code Online (Sandbox Code Playgroud)
和两个新提交到newbranch:commit1和commit2
然后我们切换到master并制作 cherry-pick
git checkout master
git cherry-pick hash_of_commit1
Run Code Online (Sandbox Code Playgroud)
展望gitk我们看到commit1和樱桃采摘的版本有不同的哈希值,所以在技术上它们是两个不同的提交.
最后我们合并newbranch到master:
git merge newbranch
Run Code Online (Sandbox Code Playgroud)
并且看到这两个具有不同哈希值的提交合并没有问题,尽管它们暗示应该应用相同的更改两次,因此其中一个应该失败.
git是否真的对提交的内容进行了智能分析,同时合并并确定更改不应该应用两次,或者这些提交在内部标记为链接在一起?
我有一个问题,我有一个大的提交,它改变了大约一千行代码,从行的末尾删除空格并删除选项卡前的空格.
此项目还有大约50个拉取请求,当我的提交合并时,这些请求都会发生冲突.有没有办法可以设置git,以便在合并未来的提交时,它忽略了其中一个只是空白变化的冲突?
无法修改git本身或使用第三方工具,但使用钩子很好.
在一个较大的git合并与几个冲突的文件,我错误地将文件标记为已解决(使用git add FILE一些编辑后)
现在我想撤消我的冲突解决尝试,并开始解决该文件.
我怎样才能做到这一点?
当有一个collison期间git merge,我打开一个名为Meld的合并工具.它打开三个文件LOCAL,BASE和REMOTE.正如我读过LOCAL是我的本地分支,BASE是共同的祖先,REMOTE是要合并的分支.
现在问我的问题:最终会使用哪个版本的文件?是REMOTE吗?如果是这样,我可以根据需要编辑它,不管BASE分支中的内容是什么?
我有2个git分支branch1和branch2,我想将branch2中的file.py合并到branch1中的file.py中,并且只将该文件合并.
本质上我只想处理branch1中的file.py但想要利用merge命令.做这个的最好方式是什么?
我对我的分支进行了一些更改,并意识到我忘了我已经对所述分支进行了一些其他必要的更改.我想要的是一种将我的隐藏更改与当前更改合并的方法.
有没有办法做到这一点?
为了方便起见,我最终放弃并首先承诺了我目前的变化,然后是我的变化,但我宁愿一举将它们送进去.
git ×10
git-merge ×10
branch ×1
cherry-pick ×1
git-branch ×1
git-revert ×1
git-stash ×1
kdiff3 ×1
meld ×1
mergetool ×1
whitespace ×1