美文网首页
关于git介绍

关于git介绍

作者: Chevy2017 | 来源:发表于2018-01-14 14:03 被阅读0次

我们在工作中经常会涉及到GIT命令的使用,本文主要内容是对工作中经常使用Git的命令进行介绍。


  说到git命令,不得不提到另外两个相关的概念:repo和gerrit,很多大型公司都是基于repo脚本进行代码管理,同时会搭建自己的gerrit代码审核服务器。

三者关系如下:


微信图片_20180114114447.png

关于repo

  人们经常会将repo和git联系起来,Repo是谷歌用Python脚本写的调用git的一个脚本。主要是用来下载、多个Git仓库。
  看过Android源码的同学都应该知道,Android项目那是由多个git仓库组成的,它有非常多的分支。
  如:android/framework/base它就是一个git仓库。
   android/packages/apps/Camera(app下面的所有的应用都是单独的git仓库进行的管理)
  简单来说就是:Git管理单独的模块,而repo管理所有的Git库,将多个Git库组合在一起,形成一个完整的大版本。

关于Gerrit

  Gerrit是一种免费、开放源代码的代码审查软件,使用网页界面。利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。具体的页面操作,权限控制不做过多介绍。

git仓库文件状态

  GIT仓库所在的目录称为工作目录,这个很好理解,在工作目录中的文件被分为两种状态,一种是已跟踪状态(tracked),另一种是未跟踪状态(untracked)。只有处于已跟踪状态的文件才被纳入GIT的版本控制。如下图:

image.png

  当我们往工作目录添加一个文件的时候,这个文件默认是未跟踪状态的,我们肯定不希望编译生成的一大堆临时文件默认被跟踪还要我们每次手动将这些文件清除出去。用以下命令可以跟踪文件:git add <file>

git常见命令操作

image.png
  • 文件操作命令
常用对文件操作为:修改、删除
修改:git add
删除:git rm
重命名:git mv
补充:
git status -s
git  add  –u    将git维护的文件的改变全部添加到暂存区
git add –A  将当前模块中所有的改变添加到暂存区,包括untrack的文件,这条命令使用要谨慎,因可能会添加一些不必要的文件。
git clean -fd 删除untrack的文件(包括文件夹),谨慎

  • 查看提交记录(git log)
git  log  [options]  <path>:
-p  查看修改详情
--stat  查看修改了哪些文件
-n  n表示数字,即你希望查看几条记录
<path>  表示查看该路径文件的修改记录

补充:
git show <commit>
git whatchanged <commit>
git log --author=huihui  
git log --grep=<pattern>

  • 代码回退(git reset)
git reset的三种模式:
--hard  将暂存区和工作区都回退到commit节点
--mixed  将暂存区回退到commit节点,工作区不变
--soft  暂存区和工作区均不变,只回退本地库到commit
使用场景:git reset --soft HEAD^

单个文件回退到某一版本:
git reset <commit> <filename>(恢复暂存区中的该文件)
git checkout <commit> <filename>(恢复暂存区和工作区)

  • 修改同步(git checkout)
git checkout <path>  将文件从暂存区check到工作区

分支操作:
git checkout –b <branch_name> <remote_branch_name>
切换分支:
git checkout <branch_name> 

补充:
git branch -a  查看所有分支,-r查看远程分支
git cherry-pick  将其他分支的提交应用到当前分支(重要)

  • 修改暂存(git stash)
用来保存当前的修改(包括工作区和暂存区):
git stash save pop apply drop list show clear

使用建议:
git stash save 和 git stash apply 成对使用
git stash show  查看修改内容
git stash list  查看stash的列表
git stash clear 清除所有stash的内容

  • 其他
git revert <commit>  回退之前的提交
git blame -L n,m  查看具体代码的引入人
repo forall  -c ……针对项目中的所有模块进行操作

参考:
https://www.cnblogs.com/lexuele/p/5133601.html
http://blog.csdn.net/zy00000000001/article/details/70507740

相关文章

  • 关于git介绍

    我们在工作中经常会涉及到GIT命令的使用,本文主要内容是对工作中经常使用Git的命令进行介绍。   说到git命令...

  • 分布式管理软件git

    关于Git的介绍有很多,我们还是简单的说下,还是有很多朋友没有从svn转到git上。 git介绍 git是一款开源...

  • 开发中用到的工具

    版本控制 使用Git进行版本控制。 这里有关于Git的简单介绍。这里有Git比较详细的使用介绍 代码托管位置 对于...

  • git 进阶使用手册

    博客更新:tengfeios.com介绍一些关于git的进阶操作 提交相关 git提交内容模版 git confi...

  • Git 简明教程

    更新: 最近新做了一个 slide 声明1:本文关于git原理介绍的图片源自git官网(https://git-s...

  • git进阶

    git原理简介 关于git原理的详细介绍,请参考git的官方中文教程。这里只是有选择性地粗略地介绍一部分。 工作区...

  • Git的安装和简单使用

    本文将介绍Windows用户安装git并上传代码到Git@OSC中。 关于更多的git教程,可到菜鸟教程等进行深入...

  • 折磨死人的Cygwin

    不久前在网上买了一本关于Git的电子书,只看了对Git的介绍部分,剩下的关于Git的操作部分自然需要实际上机操作,...

  • 关于团队合作的git冲突小叙

    适宜人群 这是一篇关于 git 冲突入门级的介绍,以及简略介绍 git 分支的应用,大佬请绕行//手动龇牙另外还有...

  • git 基本使用手册

    博客更新:tengfeios.com 介绍一些关于git的基本操作 git的基本操作 最开始需要一个让git关联一...

网友评论

      本文标题:关于git介绍

      本文链接:https://www.haomeiwen.com/subject/evdkoxtx.html