GIT 摘要-查看版本

这里介绍几个查看版本库的发展变化以及比较差异的命令:

 Git show-branch

  • -- 查看版本库中每个分支的世系发展,并查看提交的内容是否进入分支
  • --git show-branch
  • --git show-branch –r
  • --git show-branch  --current
      • -----------------------------------------------------------------------------
          • ! [issue] fixed a branch ! [iisue]
            * [master] mmmm-master
              ! [mumoe] you are hero
               ! [pub] you are hero
                ! [sos] 123456-sos
          • -----------------------------------------------------------------------------

 Git diff

  •  -- 比较两个版本差异
  • --git diff  比较当前的工作目录和版本库数据库中的差异
  • --git diff  master sos 两个分支比较
  • 差异将以典型的 patch 方式表示出来;
diff --git a/hello b/hello
index a5c1966..bd9212c 100644
--- a/hello
+++ b/hello
@@ -1 +1,2 @@
 Hello, world
+It's a new day for git

Git whatchanged

  • -- 查看某个版本的发展
  • 我们现在再用 git-whatchanged 命令来看看 master 分支是怎么发展的。
  • $ git-checkout master
  • $ git-whatchanged

Git merge

  • --合并两个分支
  • 我们为项目创建了不同的分支,经常要将别人的分支合并到自己分支上,现在将是是哦是sos 分支上的工作合并到master分支上.
  • $ git checkout master
  • $ git merge "merge work in sos" sos
  • 但是,此时git会出现合并冲突提示
  • …………
  • 通过修改冲突文件,然后再提交。
  • $ git commit –i hello.c
Git-reset
  • 项目跟踪工具的一个重要任务之一,就是使我们能够随时逆转(Undo)和恢复(Redo)某一阶段的工作。
  • git-reset 命令就是为这样的任务准备的。它将当前的工作分支的 定位到以前提交的任何版本中,它有三个重置的算法选项。
  • --mixed
  • 仅是重置索引的位置,而不改变你的工作树中的任何东西(即,文件中的所有变化都会被保留,也不标记他们为待提交状态),并且提示什么内容还没有被更新了。这个是默认的选项。
  • --soft
  • 既不触动索引的位置,也不改变工作树中的任何内容,我们只是要求这些内容成为一份好的内容(之后才成为真正的提交内容)。这个选项使你可以将已经提交的东西重新逆转至“已更新但未提交(Updated but not Check in)”的状态。就像已经执行过 git-update-index 命令,但是还没有执行 git-commit 命令一样。
  • --hard
  • 将工作树中的内容和头索引都切换至指定的版本位置中,也就是说自 之后的所有的跟踪内容和工作树中的内容都会全部丢失。因此,这个选项要慎用,除非你已经非常确定你的确不想再看到那些东西了。
  • 现在用 –soft 选项逆转刚才提交的内容
  • git reset –soft HEAD^

Git tag

  • -- 标定版本 包括轻标签和署名标签
  • --git tag my-tag
  • --git tag –s my-tag

Git fetch

  • -- 抓取远程版本库的工作到一个临时的标签中,然后运行Git merge  命令
  • -- git fetch
  •   由不同版本库的通信协议,可以几种形式代替:
  •    Rsync
  •         rsync://remote.machine/patch/to/repo.git/
  •    SSH
  •         eten@192.168.0.11:/path/to/iii.git
  •         这里的eten 是登录用户名 ;192.168.0.11 是保存版本库的主机IP地址
  •    local directory
  •         /path/to/repo.git  本地目录的情况
  •    git Native
  •        git://remote.machine/path/to/repo.git
  •    HTTP
  •        http://remote.machine/path/to/repo.git

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 如何通过 Email 来提交工作++++++++++++++++++++++++++++++++++++

背景: 如果版本库是通过单向的下载协议发布的,如 HTTP,我们就无法将工作上传到公共的版本库中。别人也无法抓取我的工作,那怎么办呢?不必担心,可以依赖emai来进行交流。

操作如下:

1. 下载版本库

  •     $ git clone http://www.bit.com/git/git-project.git
  •     $ cd  git-project
  •     默认地,它会有两个分支; master和origin  ,直接在master下工作,也可以创建自己的工作分支,但千万不要修改origin 分支!因为它是公共版本库的镜像。
  • 你可以直接在 master 下开展工作,也可以创建你自己的工作分支。当你对项目做了一定的工作,并提交到库中。我们用 git-show-branch 命令先看下库的状态。
  • * [master] your buddy's contribution ! [origin] degining of git-format-patch example--* [master] your buddy's contribution*+ [origin] degining of git-format-patch example
  • 上面就假设你已经提交了一个叫 "your buddy's contribution" 的工作。现在我们来看看怎么通过 email 来交流工作了。

2. 

  • $ git-fetch origin (1)
  • $ git-rebase origin (2)
  • $ git-format-patch origin (3) 
  • (1)更新 origin 分支,防止 origin 分支不是最新的公共版本,产生错误的补丁文件;
  • (2)将你在 master 上提交的工作迁移到新的源版本库的状态的基础上;
  • (3)生成补丁文件;
  • 会在当前目录下生成一个大概名为 0001-your-buddy-s-contribution.txt 补丁文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值