git初识和常用命令

1、git为分布式版本控制系统.

2、git的特点

      1)版本模式:源码版本库副本间是对等的实体,用户的机器出了保存他 们的工作副本外,还拥有本地版本库的历史信息。 

      2)并发模式:在合并模式下,用户可以随意编辑或更改文件,但可能随时会被通知存在冲突(两个或多个用户同时编辑同一文件),于是版本控制工具或用户需要合并更改以解决这种冲突。因此,  几乎所有的分布式版本控制软件采用合并方式解决并发冲突。

      3)历史模式:快照OR改变集

      4)更改范围:文件Or目录

      5)网络协议:多个版本同步时的网络协议

      6)原子性:提交、合并、不改变

      7)部分clone:只拷版本库子目录

3、git常用命令

1)分支的管理

git branch 命令不仅仅能创建和删除分支,如果不加任何参数,它会给出当前所有分支的清单:

$ git branch
  iss53
* master
  testing

注意看 master 分支前的 * 字符:它表示当前所在的分支。也就是说,如果现在提交更新,master 分支将随着开发进度前移。若要查看各个分支最后一个提交对象的信息,运行 git branch -v

$ git branch -v
  iss53   93b412c fix javascript issue
* master  7a98805 Merge branch 'iss53'
  testing 782fd34 add scott to the author list in the readmes

要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用 --merged 和 --no-merged 选项(Git 1.5.6 以上版本)。比如用 git branch --merged 查看哪些分支已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。):

$ git branch --merged
  iss53
* master

之前我们已经合并了 iss53,所以在这里会看到它。一般来说,列表中没有 * 的分支通常都可以用 git branch -d 来删掉。原因很简单,既然已经把它们所包含的工作整合到了其他分支,删掉也不会损失什么。

另外可以用 git branch --no-merged 查看尚未合并的工作:

$ git branch --no-merged
  testing

它会显示还未合并进来的分支。由于这些分支中还包含着尚未合并进来的工作成果,所以简单地用 git branch -d 删除该分支会提示错误,因为那样做会丢失数据:

$ git branch -d testing
error: The branch 'testing' is not fully merged.
If you are sure you want to delete it, run 'git branch -D testing'.

不过,如果确实想要删除该分支上的改动,可以用大写的删除选项 -D 强制执行,就像上面提示信息中给出的那样。

2)checkout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支。


3)实践中必须理解的命令

git的基本原理非常棒的图解:http://blog.jobbole.com/22647/

git diff (查看分支不同)

git branch(管理分支)

git checkout(heckout命令用于从历史提交(或者暂存区域)中拷贝文件到工作目录,也可用于切换分支

git commit(暂存区域的文件创建一个新的提交,并把此时的节点设为父节点。然后把当前分支指向新的提交节点

git merge (分支合并,合并前,索引必须和当前提交相同。如果另一个分支是当前提交的祖父节点,那么合并命令将什么也不做

git remote(没有克隆现有仓库,并欲将你的仓库连接到某个远程服务器

git fetch(创建并更新所有远程分支的本地远程分支

git pull(更新你的本地仓库至最新改动

git push(推送到远程仓库,否则不为他人所见

git reset (

                 本地仓库的回退(撤销本地的commit): git  reset:

                 reset命令有3种方式:

                 git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息git 
                 reset --soft  HEAD^:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
                 git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容

                )

git revert(

                 git revert 是撤销某次操作,此次操作之前的commit都会被保留

                 git reset 是撤销某次提交,但是此次之后的修改都会被退回到暂存区

                )

git reflog(记录分支的变化或者是HEAD引用的变化

git log (查看修改信息)

git tag(软件发布时创建标签,是被推荐的


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值