在提出问题之前,我想知道我对Git概念的理解是否正确,请随时纠正我:
分支名称指向分支的提示(即结束提交),以及
头指向当前分支的分支名称,以及
当前分支被定义为签出到工作目录中的分支。
以下是我的问题:
当通过git命令将新提交添加到分支时(任何可以将提交添加到分支的git命令),
问题:
git命令是否总是将分支名称向前移动以指向新提交?还是有git命令将新提交添加到分支,这些命令不移动分支名称,因此需要运行其他git命令来移动它?
什么时候
- a new commit is added to **the current branch** by a g
我读过一些关于这方面的文章,但需要一些澄清。我知道我可以在我的本地分支中得到未被推送的提交
git log origin/master..HEAD
当我从一个分支移动到另一个分支时,是否有一种方法可以自动将未推送提交(即使我们必须解决合并冲突,如果有的话)应用到移动到分支上?
此外,在我的本地分支上,当我有未完成的更改,并且我签出了另一个分支时,未提交的更改会被移动到移动到分支,不管git文档说这应该会引发一个错误。这个设置在配置的某个地方吗?为什么我没看到错误?
$ git checkout mytopic
error: You have local changes to
我今天有一个奇怪的行为,我想问一问这是否正常。现在,情况就是这样(将新提交添加到底部):
br1 br2
A
\
B
C
D
现在,当我
git checkout br1
git merge --no-ff br2
会变成这样(请上下阅读,最新的提交是'E')
br1 br2
A
| \
| B
| C
| D
| /
E
好的..。现在,奇怪的是;现在我称之为"git状态“;它说我在远程分支之前提交4。这是怎么回事?我不应该只有一个承诺吗?
奇怪的是,当我从藏库(基本是Git )中检查
我有一个git回购,看起来像这样:
A - B - C - D - E - F
^ ^
| |
Staging master
我想将暂存分支指针移到E,但我不希望提交B和D在分支中。我想把B和D放在他们自己的分支里。
Staging
|
V
A ---- C ----- E - F <- master
\ /
B ----- D -----
我有两个正在处理的特性
共享--提交-- A -- B -- C Feat1
共享--提交-- D -- E -- F Feat2
问题是,为了测试Feat2,我真的需要Feat1,但我仍然希望它们作为单独的分支,因为它们是不同的。什么是对Feat2进行更改,然后快速创建第三个分支的好方法,这两个分支都在一起,不需要我每次都销毁它。
共享--提交-- Feat1 -- Feat2
我所做的是
git checkout feat2 git branch -b combo git rebase -i feat1
但是当我对feat2进行更新时,我不知道如何合并这些新的更改。