zoukankan      html  css  js  c++  java
  • git

    1.创建分区并切换到分区

    git checkout -b 分区名

    2.创建分区

    git branch 分区名

    3.切换分区

    git checkout 分区名

    4.查看所有分区

    git branch -a

    5.删除分区

    git branch -d 分区名 (已合并到当前分区)

    git branch -D 分区名 (还没有合并到当前分区,注意原来合并过的数据会丢失)

    6.查看提交日志

    git log

    --pretty=oneline 单行显示

    git log --graph --pretty=oneline

    --abbrev-commit 显示id的前7位 (即可使用操作的位数)

    git log --graph --pretty=oneline --abbrev-commit

    7.合并其他分区,到当前分区

    git merge 分区名   

    注意有冲突的话需要解决冲突后才能提交

    如果分支只有你自己一个人用的话,可以使用下面的方式,合并分区 

    git rebase 分区名

    7.工作区和暂存区文件区别

    git diff  对比的是同一个文件在工作区和暂存区的区别

    git diff --cached 对比的是同一个文件在暂存区和本地仓库的区别

    git diff HEAD 对比的是同一个文件在本地仓库和工作区的区别 (HEAD 指向的是 local repository 中最新提交的版本)

    git 目录中的文件都在工作区

    git add 后相应的文件就复制到了暂存区

    git commit 后相应的文件就提交到本地仓库

    git push 后相应的文件就推送到远程仓库了

    git 合并方式

    git merge  (git merge --ff)

    git merge --no-ff

    git merge --squash

    fast-forward (--ff)

    Git 合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward)不过这种情况如果删除分支,则会丢失merge分支信息。

    –squash

    把一些不必要commit进行压缩,比如说,你的feature在开发的时候写的commit很乱,那么我们合并的时候不希望把这些历史commit带过来,于是使用–squash进行合并,此时文件已经同合并后一样了,但不移动HEAD,不提交。需要进行一次额外的commit来“总结”一下,然后完成最终的合并。

    –no-ff

    关闭fast-forward模式,在提交的时候,会创建一个merge的commit信息,然后合并的和master分支
    merge的不同行为,向后看,其实最终都会将代码合并到master分支,而区别仅仅只是分支上的简洁清晰的问题,然后,向前看,也就是我们使用reset 的时候,就会发现,不同的行为就带来了不同的影响

    git merge和git rebase 区别参考

    https://zhuanlan.zhihu.com/p/57872388

  • 相关阅读:
    新内核2.6.30编译完之后在目标板上看不到ttyS1
    使用memset、memcpy等函数需要包含string.h而不是strings.h
    软件模式之原则设计
    由编译错误看L. lxxxx的正确位置
    设计模式之策略模式
    make menuconfig提示'make menuconfig' requires the ncurses libraries.
    抽取界面用 XML 和 XSL 构建有良好适应性的 Web 应用前端
    .Net框架下的XSLT转换技术简介
    派生和继承
    UML 类图介绍
  • 原文地址:https://www.cnblogs.com/rchao/p/15651337.html
Copyright © 2011-2022 走看看