我正在使用git并在master分支上工作.这个分支有一个名为的文件app.js.
我有一个experiment分支,我做了一堆变更和大量的提交.现在我希望把做只对所有变化app.js从experiment到master分支.
我怎么做?
再一次,我不想合并.我只是想把所有的变化app.js从experiment分支带到master分支.
我有两个分支:master和dev
我想从dev分支创建一个"功能分支" .
目前在分支开发,我做:
$ git checkout -b myfeature dev
Run Code Online (Sandbox Code Playgroud)
... (一些工作)
$ git commit -am "blablabla"
$ git push origin myfeature
Run Code Online (Sandbox Code Playgroud)
但是,在对我的树枝进行可视化之后,我得到了:
--**master**
------0-----0-----0-----0-----0
------------------------**dev**----**myfeature**
Run Code Online (Sandbox Code Playgroud)
我的意思是分支似乎合并了,我不明白为什么......
我做错了什么?
请问您如何解释我如何从另一个分支分支并推回到功能分支的远程存储库?
所有这些都在分支模型中,就像这里描述的那样.
我有两个分支.提交a是一个头,而其他有b,c,d,e和f之上a.我想移动c,d,e和f第一支没有提交b.使用樱桃挑选很容易:结帐第一个分支樱桃 - 一个接一个c地挑选f第二个分支到第一个.但有没有办法挑选所有c- f一个命令?
这是场景的直观描述(感谢JJD):

这可能听起来像是一个基本的问题,但我已经寻找答案,我现在比以前更困惑.
当我的分支合并到我的另一个分支时,git中的"我们的"和"他们的"是什么意思?两个分支都是"我们的".
合并冲突是"我们的"总是显示两个版本的上部?
"我们的"总是指合并开始时HEAD指向的分支吗?如果是这样,那么为什么不使用像"当前分支"这样的明确的所有格引用而不是使用像"我们的"这样的所有格代词,这些代词是引用模糊的(因为这两个分支在技术上都是我们的)?
或者只是使用分支名称(而不是说"我们的"只是说"本地主人"等)?
对我来说最令人困惑的部分是我在特定分支的.gitattributes文件中指定.让我们说在测试分支中我有以下.gitattributes文件:
config.xml merge=ours
Run Code Online (Sandbox Code Playgroud)
现在我结账并指出HEAD为master然后合并测试.由于master是我们的,并且test的.gitattributes没有签出,它甚至会产生影响吗?如果它确实有效果,因为主人现在是"我们的",那么会发生什么?
我一直想知道是否有一种简单的方法来推送和拉出具有不同名称的远程分支的本地分支,而不必始终指定这两个名称.
例如:
$ git clone myrepo.git
$ git checkout -b newb
$ ...
$ git commit -m "Some change"
$ git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)
现在如果有人更新remote_branch_name,我可以:
$ git pull
Run Code Online (Sandbox Code Playgroud)
一切都是合并/快进的.但是,如果我在当地的"newb"中进行更改,我不能:
$ git push
Run Code Online (Sandbox Code Playgroud)
相反,我必须:
% git push origin newb:remote_branch_name
Run Code Online (Sandbox Code Playgroud)
看起来有点傻.如果git-pull用于git-config branch.newb.merge确定从何处拉出,为什么不能git-push有类似的配置选项?有没有一个很好的捷径,或者我应该继续漫长的路?
在进行git rebase时,我常常难以解决在解决冲突时"本地"和"远程"发生的事情.我有时会产生这样的印象:他们将一方提交交换到另一方提交.
这可能(肯定)因为我还没有正确理解.
变基础时,谁是'本地',谁是'偏远'?
(我使用P4Merge解决冲突)
$ git reset -- <file_path> 可以通过路径重置.
但是,$ git reset (--hard|--soft) <file_path>会报告如下错误:
Cannot do hard|soft reset with paths.
Run Code Online (Sandbox Code Playgroud) 假设我在master上重新定义实验分支,文件中存在冲突.当然,两个分支都删除了文件.因此,当我解决冲突时,在我看到和.它非常令人困惑.有什么办法可以理解他们的意思吗?谁是他们,谁是我们?git statusdeleted by usdeleted by them
或者在重新定位时有另一种方法可以知道哪个文件被哪个分支删除了?喜欢打印分支名称?
嗨,我需要像这样合并两个分支.
这只是一个正在发生的事情的例子,我使用了数百个需要解决的文件.
git merge branch1
...conflicts...
git status
....
# Unmerged paths:
# (use "git add/rm <file>..." as appropriate to mark resolution)
#
# both added: file1
# both added: file2
# both added: file3
# both added: file4
git checkout --ours file1
git chechout --theirs file2
git checkout --ours file3
git chechout --theirs file4
git commit -a -m "this should work"
U file1
fatal: 'commit' is not possible because you have unmerged files.
Please, fix them up in the …Run Code Online (Sandbox Code Playgroud) 几天前,我根据"大师"制作了新的分支"new_branch".当我使用文件"file.php"处理我的"new_branch"时,他的分支上的第二个开发人员删除了文件"file.php"并将他的分支与"master"合并.现在我需要在当前的"主人"上重新分支我的分支.命令后git pull --rebase origin master我有冲突
我们删除了:app/file.php
我现在不做什么,我不想丢失我在这个文件中所做的更改.命令后
git add -A
git rebase --continue
Run Code Online (Sandbox Code Playgroud)
文件将在我的"new_branch"中消失?
git ×10
git-branch ×2
git-checkout ×2
git-rebase ×2
cherry-pick ×1
conflict ×1
git-flow ×1
git-merge ×1
git-push ×1
git-remote ×1
git-reset ×1
git-workflow ×1
merge ×1
rebase ×1
repository ×1