我是 GIT 的新手,我对分支机构有以下疑问。
我使用以下命令创建了一个名为 easy-mode 的新分支:
git branch easy-mode
然后我看到我的分支,这是输出:
Andrea@Andrea-PC MINGW64 ~/Documents/WS_vari/version-control/asteroids (easy-mod
e)
$ git branch
* easy-mode
master
因此,它应该意味着 easy-mode 分支已正确创建,并且此时它是活动分支。这是真的吗?
好的,然后我修改了一个名为 game.js 的文件,我已将它添加到暂存区域,最后我已经提交了它。所以我希望这个提交与作为活动分支的 easy-mode 分支有关。
现在的问题是尝试显示提交图我得到了这些结果:
Andrea@Andrea-PC MINGW64 ~/Documents/WS_vari/version-control/asteroids (easy-mod
e)
$ git log --graph master easy-mode
* commit 59b4bce5964825b7c6fec4270ba34d2166f5168e
| Author: Andrea Nobili <nobili.andrea@gmail.com>
| Date: Thu Jul 28 13:17:01 2016 +0200
|
| Make asteroids split into 2 smaller pieces instead of 3
|
* commit cba1887f66a579e81c70a607d8402e84fa6e966d
| Author: Andrea Nobili <nobili.andrea@gmail.com>
| Date: Thu Jul 28 12:30:06 2016 +0200
|
| fixing: fixed the bug related of the weapon delay
|
* commit 3884eab839af1e82c44267484cf2945a766081f3
| Author: cbuckey <caroline@udacity.com>
| Date: Fri Apr 29 12:33:05 2011 -0700
|
| Add color
|
* commit 3e42136a76cf78c6c421cd720427bf6337c2d623
| Author: Doug McInnes <doug@dougmcinnes.com>
| Date: Tue Mar 15 22:34:49 2011 -0700
|
| now using requestAnimationFrame
|
| see this for more info:
| http://paulirish.com/2011/requestanimationframe-for-smart-animating/
|
* commit 4035769377cce96a88d5c1167079e12f30492391
| Author: Doug McInnes <doug@dougmcinnes.com>
| Date: Wed Jun 9 21:04:32 2010 -0700
:
所以我正在执行命令:
git log --graph master easy-mode
我希望看到分支到 easy-mode 分支的主分支包含最后一次提交(提交59b4bce5964825b7c6fec4270ba34d2166f5168e )到简易模式分支。
但在我看来,我没有 easy-mode 分支,并且所有提交都在同一行。
为什么呢?怎么了?我错过了什么?
编辑1:
这是 git log --graph --oneline --decorate --all 命令的输出:
Andrea@Andrea-PC MINGW64 ~/Documents/WS_vari/version-control/asteroids (easy-mod
e)
$ git log --graph --oneline --decorate --all
* 67e5e37 (HEAD -> easy-mode) feature: easy mode, the asteroids are split in 2 instead of 3
* cba1887 (master) fixing: fixed the bug related of the weapon delay
* 3884eab (origin/master, origin/HEAD) Add color
* 3e42136 now using requestAnimationFrame
* 4035769 frame interval was set wrong after game was paused
* 25ede83 a couple missing ends with the ipad version
* df03538 I can't spell 'screen' apparently :)
| * 354dfdd (origin/coins) Make ships able to spawn on coins
| * 0c6daf1 Make it possible to collect coins
| * a3c0ae4 Create helper functions
| * 656b02e First pass at adding coins
|/
* b0678b1 Revert controls
* f19cb1b Fix typo in space
* 75928a9 Use space for movement and enter for shooting
* ac83b72 mostly finished ipad version
正如您所看到的,最后一次提交是:
* 67e5e37 (HEAD -> easy-mode) feature: easy mode, the asteroids are split in 2 instead of 3
我无法理解它是否进入新的简易模式分支,或者它是否进入主分支,因为在打印的图形中我看不到 | / ,用于将新分支标识到图表中(因为硬币分支显示在上一个输出中)。
为什么呢?我错过了什么?
答案 0 :(得分:0)
为了在一个命令中创建并结帐新分支
git checkout -b easy-mode
最常见的命令,只需使用一行提交消息即可将所有分支整齐地标记为
git log --graph --oneline --decorate --all
我通常会将这些长公共命令分配为别名
git config --global alias.la 'log --graph --oneline --decorate --all'
现在,您只需使用
即可调用它git la
答案 1 :(得分:0)
简易模式分支显示为主分支的延续,因为主模式没有提交任何内容,因为 easy-mode < / strong>已创建:
master master
| |
v is topologically v
A--B--C equivalent to A--B--C--D
\ ^
D |
^ easy-mode
|
easy-mode
创建存储库的实验性克隆并将内容提交到 master 。那么您的历史将不再是线性的,简易模式将明确区别于主:
master
|
v
A--B--C--E
\
D
^
|
easy-mode