文档章节

Git使用方法总结

lowpower
 lowpower
发布于 2017/05/18 13:56
字数 947
阅读 5
收藏 0
Git
  • Git的主要特点
  1. 分布式的,可以单机工作,用git管理自己的本地代码,记录改动日志
  2. 创建分支和tag比较简单,切换也很方便,不需要重复clone代码,一个code目录对应多个分支
  3. 跟踪的是文件内容,而不是文件。对目录不进行跟踪,所以没有空目录
  4. 可以和svn进行交互,你用git完全可以去访问团队的svn库
  5. 支持三种网络协议,ssh --安全,git--快,http/https协议--易架设,穿透好
  • Git的安装
  1. 发行版本里一般有git rpm,直接安装即可
  2. 如果没有去https://git-scm.com/下载版本或源码安装
  3. 配置全局用户: git config --global user.name "Your Name"
  4. 配置全局电子邮箱:git config --global user.email "you@example.com"
  5. 配置颜色显示:git config --global color.ui "auto"
  6. 为特定版本库配置用户和email:

        git config  user.name "Your Name"

        git config  user.email "you@example.com"

  • Git的日常用法

 

创建版本库 git init
添加新文件或暂存修改的文件 git add <some file>
提交改动 git commit -m "<some message>"
交互模式添加 git add -i
一步提交已修改的所有文件 git commit -m "<some message>" -a
查看状态 git status
创建远程版本库

git remote add origin git@example.com:/repos/pocus.git 

git push orign master

克隆远程版本库   git clone git@example.com:/repos/pocus.git 
切换远程版本分支

git branch -r

git checkout <branch name>

与远程版本库同步 git fetch
与远程版本库同步并合并   git pull
推入改动     git push
显示历史记录

git log

git log -1

git log --since=“6 hours”

git log --before=“2 days”

git log 7b1558c..32bde32

git log HEAD~5..HEAD

查看当前目录树与暂存区差异 git diff
显示暂存区和版本库差异 git diff --cached
显示工作目录与版本库差异 git diff HEAD
显示工作目录与某次提交的差异

git diff 182df2f

显示两个版本间差异 git diff 182df2f 23e392f
显示差异统计   git diff --stat <start point> [<end point>]
显示文件内容修改记录

git blame hello.c

git blame -L 12,25 hello.c

git blame -L 12,+2 hello.c 相当于12,13行

git blame -L 12,-2 hello.c  相当于11,12行

列分支

git branch    列本地的分支

git branch -r  列远程的分支

git branch -a 列所有的分支

创建分支

git branch <new branch>

git branch  <new branch> <start point> 基于分支,提交,标签

捡出分支 git checkout
创建并捡出分支 git branch -b <new branch>
直接合并分支 git merge <some branch>
压合合并分支 git merge --squash <some branch>
分支拣选合并,并提交 git cherry-pick 18ef23d
多个改动拣选合并

git cherry-pick -n 321d76f  (-n是不提交)

git commit

删除分支

git branch -d <branch>  (-d未合并的分支不能删除)

git branch -D <branch>

撤销修改   git revert -n HEAD
复位到某个版本 git reset 540ecb7
打标签 git tag 1.90
给分支打标签 git tag one/1.90 <one branch>

 

  • Git的高级用法

使用git子模块跟踪外部版本库

添加子模块版本库    git submodule add <git url> <name>

初始化                    git submodule init <name>

获取子模块内容        git submodule update <name>

改变Git使用的子模块版本    git add <name>    ; git commit

导出版本

git archive --format=zip --prefix=mysite/ HEAD  > mysite.zip

git archive --format=tar --prefix=mysite-1.0/ 1.0 | gzip > mysite-1.0.tar.gz

二分查找

git bisect start

git bisect bad

git bisect good 1.0

git bisect reset

  • 使用git-svn访问svn库

克隆    git svn clone -s --prefix svn/ <svn repository>

           git svn clone -r3478:HEAD  --prefix svn/  http://svnpath

更新    git svn fetch 或 git svn rebase(常用rebase)

将修改推回上游svn库    git svn dcommit

列出所有将要被推入的修改    git svn dcommit -n

日志    git svn log

追溯    git svn blame <some file>

  • 使用Gitosis管理Git服务器

© 著作权归作者所有

lowpower
粉丝 0
博文 19
码字总数 8045
作品 0
南京
程序员
私信 提问
PhalApi-APK--APK文件解包处理

PhalApi-APK -- APK文件解包处理 前言 应为笔者这边涉及到的项目有需求对APK进行解包的操作,所以贡献此扩展希望大家喜欢 附上: 官网地址:http://www.phalapi.net/ 开源中国Git地址:http://g...

喵了_个咪
2016/03/13
44
0
PhalApi-OSS--阿里云OSS包

PhalApi-OSS -- 阿里云OSS包 前言 日常大家都会选择文件服务器,阿里云的OSS当然是个不错的选择,可以存放大量的图片以及压缩文件等,还可以开启cdn加速,但是使用起来并不是那么的舒服,所以对O...

喵了_个咪
2016/03/13
88
0
Clozure CL (user-homedir-pathname)问题总结

自己的emacs配置在windows下使用已经很好了,也总结了很多脚本,最近在运行lisp时出现问题,我用的是sbcl和Clozure CL.这两个都是最优秀的开源lisp实现之一.我的配置文件都在我的git仓库目录,这...

闲庭风
2013/07/24
0
0
PhalApi-Zip--压缩文件处理类

PhalApi-Zip -- 压缩文件处理类 前言 这是笔者在工作中,同事找到的一个比较不错的文件压缩类,也经过了实际的使用很不错所以分享处理,特此鸣谢:@牧鱼人 附上: 官网地址:http://www.phalapi.n...

喵了_个咪
2016/03/13
45
0
2017-5-8工作总结

5月8日 1、折腾了一下台式机上面的开发环境: 把一下环境配置上:java1.7、1.8、maven、git、eclipse、idea、mysql、mysql管理工具、putty FileZilla、eclipse的git、maven插件 2、解决线程池...

vomou
2017/05/08
1
0

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
28分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部