worktools-git 工具的使用总结(2)

1.创建分支

//创建分支,是在master 分支的基础上创建

[email protected]-MS-7817:~/myGit$ git st
# On branch master
nothing to commit (working directory clean)
[email protected]-MS-7817:~/myGit$ ls
aaa.txt
[email protected]-MS-7817:~/myGit$ git branch second master
[email protected]-MS-7817:~/myGit$ git br -av
* master f73968d my second commit
  second f73968d my second commit 

星号表示当前所处的分支,一般master是主分支

2.删除分支

[email protected]7817:~/myGit$ git br -av
* master f73968d my second commit
  second f73968d my second commit
[email protected]-MS-7817:~/myGit$ git branch -d master
error: Cannot delete the branch ‘master‘ which you are currently on.
[email protected]-MS-7817:~/myGit$ git branch -d second
Deleted branch second (was f73968d).
[email protected]-MS-7817:~/myGit$ git br -av
* master f73968d my second commit
[email protected]-MS-7817:~/myGit$

我们不能删除当前所处的分支

[email protected]7817:~/myGit$ git branch second master
[email protected]-MS-7817:~/myGit$ git br -av
* master f73968d my second commit
  second f73968d my second commit
[email protected]-MS-7817:~/myGit$ git checkout second
Switched to branch ‘second‘
[email protected]-MS-7817:~/myGit$ git br -av
  master f73968d my second commit
* second f73968d my second commit
[email protected]-MS-7817:~/myGit$ git branch -d master
Deleted branch master (was f73968d).
[email protected]-MS-7817:~/myGit$ 

事实证明,主分支也是可以删除的,这个似乎不存在所谓的父类节点关系,倒是更像 拷贝

3.探索两个分支间的关系

[email protected]7817:~/myGit$ git br -av
* second 2e32a61 master add
[email protected]-MS-7817:~/myGit$ git branch son second
[email protected]-MS-7817:~/myGit$ git br -av
* second 2e32a61 master add
  son    2e32a61 master add
[email protected]-MS-7817:~/myGit$ git log
commit 2e32a615216de70720d314b8fe53c1bddccfd6a3
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 16:55:33 2015 +0000

    master add

commit f73968df521e48d23289c5563f7ac7fbc5937b57
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 13:24:15 2015 +0000

    my second commit

commit 4c7cede87be37783ca4528fbdcd79bc08e3870fe
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 10:54:58 2015 +0000

    my frist commit
[email protected]-MS-7817:~/myGit$ git checkout son
Switched to branch ‘son‘
[email protected]-MS-7817:~/myGit$ git br -av
  second 2e32a61 master add
* son    2e32a61 master add
[email protected]-MS-7817:~/myGit$ git log
commit 2e32a615216de70720d314b8fe53c1bddccfd6a3
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 16:55:33 2015 +0000

    master add

commit f73968df521e48d23289c5563f7ac7fbc5937b57
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 13:24:15 2015 +0000

    my second commit

commit 4c7cede87be37783ca4528fbdcd79bc08e3870fe
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 10:54:58 2015 +0000

    my frist commit
[email protected]-MS-7817:~/myGit$

1)创建分支以后,两个分支的内容完全相同

[email protected]7817:~/myGit$ vim ccc.txt
[email protected]-MS-7817:~/myGit$ git st
# On branch son
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    ccc.txt
nothing added to commit but untracked files present (use "git add" to track)
[email protected]-MS-7817:~/myGit$ git commit
# On branch son
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#    ccc.txt
nothing added to commit but untracked files present (use "git add" to track)
[email protected]-MS-7817:~/myGit$ git add .
[email protected]-MS-7817:~/myGit$ git st
# On branch son
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   ccc.txt
#
[email protected]-MS-7817:~/myGit$ git checkout second
A    ccc.txt
Switched to branch ‘second‘
[email protected]-MS-7817:~/myGit$ git log
commit 2e32a615216de70720d314b8fe53c1bddccfd6a3
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 16:55:33 2015 +0000

    master add

commit f73968df521e48d23289c5563f7ac7fbc5937b57
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 13:24:15 2015 +0000

    my second commit

commit 4c7cede87be37783ca4528fbdcd79bc08e3870fe
Author: zhangshuli <[email protected]>
Date:   Fri Feb 13 10:54:58 2015 +0000

    my frist commit
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  bbb.txt  ccc.txt
[email protected]-MS-7817:~/myGit$

2)当我在子分支上添加了一个修改的时候,父分支会跟着做相应的修改

[email protected]7817:~/myGit$ git br -av
* parent 5ad0d1e parent test
  son    2974d86 son test
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  bbb.txt  ddd.txt
[email protected]-MS-7817:~/myGit$ git log -1
commit 5ad0d1ece9b7fd69a9e4deb990c8a4d05d2cbee1
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 17:32:39 2015 +0000

    parent test
[email protected]-MS-7817:~/myGit$ git checkout son
Switched to branch ‘son‘
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  bbb.txt  ccc.txt  ddd.txt
[email protected]-MS-7817:~/myGit$ git log -1
commit 2974d86cea7341e5921368ceb708c61f7c77e6c5
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 17:26:11 2015 +0000

    son test
[email protected]-MS-7817:~/myGit$ vim add.txt
[email protected]-MS-7817:~/myGit$ vim commit.txt
[email protected]-MS-7817:~/myGit$ git add add.txt
[email protected]-MS-7817:~/myGit$ git add commit.txt
[email protected]-MS-7817:~/myGit$ git commit commit.txt
[son 17619d8] son commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 commit.txt
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  add.txt  bbb.txt  ccc.txt  commit.txt  ddd.txt
[email protected]-MS-7817:~/myGit$ git st
# On branch son
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   add.txt
#
[email protected]-MS-7817:~/myGit$ git log -1
commit 17619d87e77a80ef744be6b542cd87ef2f62b71e
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 17:36:32 2015 +0000

    son commit
[email protected]-MS-7817:~/myGit$ git checkout parent
A    add.txt
Switched to branch ‘parent‘
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  add.txt  bbb.txt  ddd.txt
[email protected]-MS-7817:~/myGit$ ls
aaa.txt  add.txt  bbb.txt  ddd.txt
[email protected]-MS-7817:~/myGit$ git st
# On branch parent
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   add.txt
#
[email protected]-MS-7817:~/myGit$ git log -1
commit 5ad0d1ece9b7fd69a9e4deb990c8a4d05d2cbee1
Author: zhangshuli <[email protected]>
Date:   Thu Feb 26 17:32:39 2015 +0000

    parent test
[email protected]-MS-7817:~/myGit$

3)终于可以对分支盖棺定论了,原来是这样的,两个分支是同步的,直到其中的一个进行了commit,否则,当我们切换两个有父子关系的分支的时候,分支会自动merge,如果父分支创建了子分支已经存在的文件,你会发现会有merge冲突。如下

[email protected]7817:~/myGit$ git st
# On branch parent
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   add.txt
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   aaa.txt
#
[email protected]-MS-7817:~/myGit$ git checkout son
M    aaa.txt
A    add.txt
Switched to branch ‘son‘
[email protected]-MS-7817:~/myGit$ git st .
# On branch son
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#    new file:   add.txt
#
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#    modified:   aaa.txt
#
[email protected]-MS-7817:~/myGit$ vim aaa.txt
[email protected]-MS-7817:~/myGit$ vim commit.txt
[email protected]-MS-7817:~/myGit$ git checkout parent
M    aaa.txt
A    add.txt
Switched to branch ‘parent‘
[email protected]-MS-7817:~/myGit$ vim commit.txt
[email protected]-MS-7817:~/myGit$ git checkout son
error: Untracked working tree file ‘commit.txt‘ would be overwritten by merge.
[email protected]-MS-7817:~/myGit$

如果我们把修改提交了,那么你就会发现两个分支是完全不关联的

时间: 2024-10-13 14:52:24

worktools-git 工具的使用总结(2)的相关文章

git工具的使用

Git工具的出现降低了软件版本维护的成本,极大的提高了工作效率,在这里列出了一些使用方法,方便以后查看. 1.Git的初始化->创建一个Git仓库:git init 2.创建信息:git config --global user.name-->创建用户名 git config --global user.email-->创建用户邮箱 git config --list-->查看配置信息 3.提交创建的文件:git add 文件的路径(这是具体的一个文件路径)-->添加到缓存区

Myeclipse如何使用自带git工具向远程仓库提交代码

先看一下Myeclipse自带的git工具  本人是在码云上面注册的账号,上面有项目的仓库,将仓库的项目克隆到本地之后,在myeclipse中导入该项目. 那么如何将修改后的代码再提交到码云上面? 第一步:将改动的代码标记 项目右键:team->synchronize workspace  点击确定  项目右键>add to git index  第二步:将工作空间的代码提交到本地仓库 commit  需要写出注释  第三步:将远程仓库的代码合并到本地仓库 pull 这一步可能需要解决代码冲突

日积月累Learning Linux(一):在Linux下安装Git工具

背景: 由于项目需要,经常在github上下载开源库项目源代码.因此最近决定花时间系统学习一下Linux下的相关软件的安装方法,这里就以Git工具的安装为例进行讲解. Linux(fedora18)安装Git工具: 1)Git与Github的区别: Github是一个网站,给用户提供git服务.相当于web版的Git工具,在Github上注册个账号,就可以享受网站提供的Git服务.而Git是一个版本控制系统,与SVN.CVS是类似的概念,简单点说就是对你的文件的一种版本管理(此处所谓的版本其实就

Git详解之六 Git工具(转)

Git 工具 现在,你已经学习了管理或者维护 Git 仓库,实现代码控制所需的大多数日常命令和工作流程.你已经完成了跟踪和提交文件的基本任务,并且发挥了暂存区和轻量级的特性分支及合并的威力. 接下来你将领略到一些 Git 可以实现的非常强大的功能,这些功能你可能并不会在日常操作中使用,但在某些时候你也许会需要. 6.1  修订版本(Revision)选择 Git 允许你通过几种方法来指明特定的或者一定范围内的提交.了解它们并不是必需的,但是了解一下总没坏处. 单个修订版本 显然你可以使用给出的

windows中使用Git工具连接GitHub(配置篇)

Git在源码管理领域目前占很大的比重了,而且开源的项目很多都转到GitHub上面了.例如:jQuery, reddit, Sparkle, curl, Ruby on Rails, node.js, ClickToFlash, Erlang/OTP,CakePHP, Redis. 本文详细的说明了如何在Windows下安装配置Git工具连接GitHub.并可以在Visual Studio中使用Git. 一.准备工具 1.下载Git Extensions.地址 http://code.google

【转】第 02 天:在 Windows 平台必裝的三套 Git 工具

原文网址:https://github.com/doggy8088/Learn-Git-in-30-days/blob/master/docs/02%20%E5%9C%A8%20Windows%20%E5%B9%B3%E5%8F%B0%E5%BF%85%E8%A3%9D%E7%9A%84%E4%B8%89%E5%A5%97%20Git%20%E5%B7%A5%E5%85%B7.markdown 要開始使用 Git 版本控管,首先要安裝適當的 Git 工具,這個系列的文章主要還是以 Windows

git工具的使用教程

Git 是一种版本控制工具,也叫作版本管理软件(分布式管理软件).这里介绍Git的基本使用步骤,关于 Git 更详细的介绍,读者可以参考其官方网站提供的文档. 1  安装Git 在Ubuntu系统中安装Git工具: # sudo apt-get install git 如果是第一次使用 Git,需要进行如下设置: # git config --global user.name "laoyao" # git config --global user.email "[email 

代码管理工具:使用github和git工具管理自己的代码

一.git工具和账户创建 1.1 安装 Git 是 Linus Torvalds 最近实现的源代码管理软件."Git 是一个快速.可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问." Git 目前主要由寻找 CVS 或专有代码管理解决方案替代物的软件开发人员所使用.Git 与 CVS 有很多区别: 分支更快.更容易. 支持离线工作:本地提交可以稍后提交到服务器上. Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的.

git工具学习

最近实习的时候,遇到git工具,发现好强大之前没用过,特来学习下,然后自己注册了一个github账号,结合git命令练习一下,git的安装就不说了. git简介: git是分布式版本控制系统,相对于集中式版本控制系统有很大的优势,集中式版本控制系统最大的毛病就是必须联网才能工作,并且,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了.而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了. git常用命令

如何禁用/关闭vs2017自带的Git工具的?

对于用习惯了独立Git工具和命令行的人来说,看到Visual Studio自带的Git工具后,很是别扭,到处充满了不习惯,而且是不是还会出现电脑卡顿的现象(可能是我自身电脑配置一般的问题). 如何关闭vs2017自带的Git工具? 解决方案:Vs顶部菜单 - 工具 - 选项 - 源代码管理 - 插件选择 - 当前源代码插件:设置为“无”. 如何禁用Vs2017自带的Git ? 解决方案: ctrl + r 输入 regedit 打开注册表后找到:HKEY_CURRENT_USER\Softwar