文档章节

Git 学习

a
 ahucsxl
发布于 2016/04/10 20:03
字数 1538
阅读 54
收藏 2

1、配置用户信息

命令:git config --global user.name"xxx"//配置用户名

          git config --global user.email"xxx"//配置用户邮箱

查看配置信息

命令:git config --list

2、在工作目录中初始化仓库

首先进入项目目录,然后使用命令:git init

3、从现有仓库克隆

命令:git clone [url]

            git clone -b [分支名] [url]

或命令:git clone [url] newname;  //newname为项目新名称

4、把文件纳入仓库

命令:git add AndroidManifest.xml;//加入文件

          git add src;//加入目录

          git add .//加入所有文件

5、提交

命令:git commit -m “First Commit”// -m为提交的描述信息,没有-m将视为非法

命令:git commit -a -m“xxx”//跳过暂存区域(跳过add步骤)直接commit

6、查看已暂存和未暂存的更新

未暂存命令:git status//仅显示修改的文件,红色表示未add,绿色表示未commit

未暂存命令:git diff//显示详细的修改详情,仅显示当前文件暂存区域的区别(已修改但未add和已add)

已暂存命令:git diff --staged//显示详细的修改详情,仅显示暂存区域上次提交快照的区别(已add但未commit和已commit)

7、移除文件

命令:git rm xxx //xx为文件名,注意此操作会删除原文件

最后提交的时候,该文件就不再纳入版本管理了。如果删除之前修改过并且已经放到暂存区域的话,则必须要用强制删除选项 -f(译注:即 force 的首字母),以防误删除文件后丢失修改的内容

命令:git rm --cached xxx //xx为文件名,仅从仓库中删除

8、重命名

命令:git mv oldname newname

9、查看提交历史

命令:git log

命令:git log -p -2//-p表示选项展开显示每次提交的内容差异,-2则仅显示最近的两次更新

命令:git log --stat//仅显示简要的增改行数统计

命令:git log --pretty//显示提交的概要信息

命令:git log --pretty=oneline//或short、full、fuller。。。显示提交的概要信息的不同方式

命令:git log --pretty=format//定制要显示的记录格式

例如:git log --pretty=format:"%h - %an, %ar : %s"//显示提交历史距离当前时间的时间间隔以及提交的概要信息

下面列出了常用的格式占位符写法及其代表的意义。

    选项 说明

    %H 提交对象(commit)的完整哈希字串

    %h 提交对象的简短哈希字串

    %T 树对象(tree)的完整哈希字串

    %t 树对象的简短哈希字串

    %P 父对象(parent)的完整哈希字串

    %p 父对象的简短哈希字串

    %an 作者(author)的名字

    %ae 作者的电子邮件地址

    %ad 作者修订日期(可以用 -date= 选项定制格式)

    %ar 作者修订日期,按多久以前的方式显示

    %cn 提交者(committer)的名字

    %ce 提交者的电子邮件地址

    %cd 提交日期

    %cr 提交日期,按多久以前的方式显示

    %s 提交说明

 

 

一些 git log 命令支持的选项其他常用的选项及其释义。

     选项 说明

    -p 按补丁格式显示每个更新之间的差异。

    --stat 显示每次更新的文件修改统计信息。

    --shortstat 只显示 --stat 中最后的行数修改添加移除统计。

    --name-only 仅在提交信息后显示已修改的文件清单。

    --name-status 显示新增、修改、删除的文件清单。

    --abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。

    --relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。

    --graph 显示 ASCII 图形表示的分支合并历史。

    --pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。

 

一些限制输出的选项。

     选项 说明

    -(n) 仅显示最近的 n 条提交

    --since, --after 仅显示指定时间之后的提交。

    --until, --before 仅显示指定时间之前的提交。

    --author 仅显示指定作者相关的提交。

    --committer 仅显示指定提交者相关的提交。

 

使用可视化工具

命令:gitk

10、撤消操作

修改最后一次提交

命令:git commit --amend

 /*任何提交到git的都可以被恢复*/
 

11、远程仓库的使用

克隆远程仓库命令:git clone http:...

查看当前配置有哪些远程仓库命令:git remote -v

添加远程仓库命令:git remote [shortname] [url]

从远程仓库抓取数据命令:git fetch[remote-name]

推送数据到远程仓库:git push [remote-name][branch-name]

查看远程仓库信息:git remote show[remote-name]

12、git技巧和窍门

自动补全命令:两次Tab键

命令别名:git config --global alias.ci commit// 将commit命令改为ci

13、分支结构

创建分支命令:git branch name//

切换分支命令:git checkout name//

创建并切换分支命令:git checkout -b name//

删除分支命令:git branch -d name//

合并分支命令:git merge name//

14、分支管理

显示所有分支命令:git branch

显示所有分支详细信息命令:git branch -v

推送本地分支命令:git push [仓库名][分支名]

同步远程服务器数据:git fetch [仓库名]

在远程分支基础上在本地分化出一个新分支:git checkout -b [本地分支名] [远程仓库名]/[远程分支名]//例如git checkout ser origin/ser(或者git checkout --track [远程仓库名]/[远程分支名])

删除远程分支:git push [远程仓库名]:[分支名]

15、分支衍合

衍合命令:git rebase master

服务器上的Git

本地协议:这也是从别人工作目录中获取工作成果的快捷方法。假如你和你的同事在一个项目中合作,他们想让你检出一些东西的时候,运行类似 git pull /home/john/project 通常会比他们推送到服务器,而你再从服务器获取简单得多。

SSH协议:唯一一个同时支持读写操作的网络协议

© 著作权归作者所有

共有 人打赏支持
上一篇: 2016年8月27日
下一篇: Java项目命名规范
a
粉丝 1
博文 82
码字总数 39098
作品 0
合肥
私信 提问
我是如何学习git

一开始学习git的时候,网上的git教程很多,看得人眼花缭乱,不知道如何下手。现在对git已经很熟悉了,回过头来总结一下学习方法。 一般官方文档是最全面,但是不一定适合快速上手。我们可以学...

好好编程
2017/11/14
0
0
一些关于Git的学习资源

学习.png Git是什么? Git是目前这个星球上最厉害的分布式版本控制系统。 Git有什么特点? 一句话描述:只要你用过它,你就一定会爱上它的,而且是爱不释手的那种,因为它会大大提高你的工作...

爱吃西瓜的番茄酱
2017/12/25
0
0
git文章列表

关于gitlab默认clone协议 Git实现从本地添加项目到远程仓库 翻翻git之---一个简单的标签控件 LabelView (随手发了两张小宝宝的玩耍照) Git 项目推荐 | Java 版微信普通号机器人 翻翻git之---...

d_watson
2016/04/20
26
0
GIT服务器搭建及配置详解

用久了SVN,突然换了项目组,新的项目要求使用GIT,还有点点生疏,于是不得不重新翻看以前的学习笔记,在复习的过程中想到自己也已经工作两年了,也该学会总结和思考,便诞生了开始有计划的写...

PeterChen_
2017/07/04
0
0
Git 学习看这篇就够了!

Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 可能新手会问“git和github有什么关系啊?” git是一个版本控制工具; github是一个用git做版本控...

Michaelyn
2016/12/26
19
0

没有更多内容

加载失败,请刷新页面

加载更多

AMD重回服务器:Oracle甲骨文宣布将使用AMD EPYC处理器

导读 AMD的EPYC的推出,让AMD重新有了在服务器级,数据中心级等大型政企领域的竞争机会。如今,很多云服务商开始使用EPYC处理器,Oracle也在近期宣布了将使用EPYC处理器的消息。 甲骨文也公布...

问题终结者
27分钟前
0
0
Maven 依赖范围(Dependency Scope)

Dependency Scope Dependency scope is used to limit the transitivity of a dependency, and also to affect the classpath used for various build tasks. 依赖范围用于限制依赖项的传递性......

晨猫
43分钟前
1
0
细述hbase协处理器

1.起因(Why HBase Coprocessor) HBase作为列族数据库最经常被人诟病的特性包括:无法轻易建立“二级索引”,难以执行求和、计数、排序等操作。比如,在旧版本的(<0.92)Hbase中,统计数据表的...

微笑向暖wx
57分钟前
1
0
【实践】如何获得Rinkeby网络的测试以太币

当把智能合约部署到Rinkeby Test Network时,需要获得测试以太币。其网络获取测试以太币的方法同Ropsten Test Network有些不同,本文详细讲解一下。 1 访问网站 访问rinkeby网络(https://w...

HiBlock
今天
1
0
Logback中如何自定义灵活的日志过滤规则

当我们需要对日志的打印要做一些范围的控制的时候,通常都是通过为各个Appender设置不同的Filter配置来实现。在Logback中自带了两个过滤器实现:ch.qos.logback.classic.filter.LevelFilter...

程序猿DD
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部