《Pro Git》第2章 Git基础
- 1.获取Git仓库
- 1.1从现有的目录中初始化仓库
- 进入项目目录,git init,会创建一个名为.git的子目录
- 1.2克隆现有的仓库
- git clone [url],会将远程Git仓库中的每一个文件的每一个版本都拉取下来
- git传输协议,https://,git://,ssh传输协议
- 1.1从现有的目录中初始化仓库
- 2.记录每次更新到仓库
- 文件状态变化周期

- 检查当前文件状态:git status
- 跟踪新文件or暂存已修改:git add README,注:对于git add,如果参数是目录,将会将目录下所有文件追踪
- 忽略文件:.gitignore文件
- 查看已暂存和未暂存的修改:
- git diff:比较工作目录和暂存区之间的差异,即未add的内容
- git diff --cached(或 git diff --staged):比较暂存区和本地仓库之间的差异,即已add,未commit的内容
- git difftool --tool-help
- 提交更新:git commit -m "msg"
- git commit -a -m "msg"相当于git add和git commit -m
- 移除文件:
- git rm README:从暂存区移除,并从磁盘删除
- git rm --cached README:从暂存区移除,但不从磁盘删除
- 移动文件:
- git mv README.mdREADME
- 文件状态变化周期
- 3.查看提交历史:git log
- git log -p 显示每次提交的内容差异(好!)
- git log -2 显示最近两次提交
- git log --stat 显示每次提交的简略统计信息
- git log --pretty=oneline
- git log --pretty=oneline 将每个提交放在一行显示,short、full、fuller
- git log --pretty=format:"%h - %an, %ar : %s"
- git log --pretty=oneline --graph 显示ASCII图形表示的分支合并历史
- git log --pretty=format:"%h %s" --graph
- git log --oneline --decorate 使用--decorate查看各个分支当前所指的commit对象
- git log --oneline --decorate --graph --all 输出提交历史、各个分支的指向、项目的分差情况
- 限制输出
- git log --since=2.weeks 显示最近两周的提交
- git log --grep Merge 查找提交标题:显示含指定关键字的提交
- git log -S FunctionName 查找提交内容:显示含指定关键字的提交
- git log -p ./ 仅查看当前目录下的log(非常有用!)
- git log -p ~/IdeaProjects/leaf/leaf-web 查找指定的某些文件或目录的历史提交,注意路径要放到最后(非常有用)

- 4.撤销操作
- warn:在Git中任何已提交的内容几乎都是可恢复的,但任何未提交的内容可能再也找不到了。
- 提交了发现漏掉了几个文件没有添加或者提交信息写错了
- git commit --amend
- 取消暂存的文件
- git reset HEAD <file> 将提交到暂存区的文件回到工作目录
- 撤销对文件的修改
- git checkout -- <file> 还原成上次提交的样子
- 5.远程仓库的使用
- 查看远程仓库
- git reomte origin是你克隆的仓库服务器的默认名字,可替代url
- git remote -v
- 添加远程仓库:git remote add <shortname> <url>
- 示例:git remote add pb https://github.com/paulboone/ticgit,pb就是添加的远程仓库的名字,相当于origin
- 从远程仓库抓取与拉取:git fetch [remote-name],git pull
- 示例:git fetch origin 拉取,但不合并
- 示例:git pull origin master 拉取并合并
- 推送到远程仓库:git push [remote-name] [branch-name]
- 示例:git push origin HEAD:
- 查看远程仓库:git remote show [remote-name]
- 示例:git remote show origin
- 1)会列出本地分支执行git push会推送到哪个远程分支
- 2)执行git pull哪些分支会合并
- 3)哪些远程分支不在本地,或哪些远程分支已经从服务器上移除了
- 示例:git remote show origin
- 远程仓库的移除与重命名
- 重命名:git remote rename [old-name] [new-name]
- 移除:git remote rm [remote-name]
- 查看远程仓库
- 6.打标签
- 标签类型:轻量标签、附注标签(常用),以下仅介绍附注标签
- 附注标签
- 列出标签:git tag
- 创建标签:git tag -a v1.4 -m "my version 1.4"
- 对过去的提交打标签:git tag -a v1.2 9fcdb01,其中,9fcdb01是commit的值
- 共享标签:git push origin [tagname],标签必须显式地推送到远程仓库
- 一次性推送多个标签:git push origin --tags,会把所有不在远程仓库的标签全部推送
- 检出标签:git checkout -b [new-branch-name] [tagname]
《Pro Git》第2章 Git基础的更多相关文章
- git使用教程之git基础
1 获取Git仓库 在现有目录中初始化仓库 git init 克隆现有的仓库 git clone https://github.com/yangwang12345/node_test.git Git ...
- Windows核心编程:第6章 线程基础
Github https://github.com/gongluck/Windows-Core-Program.git //第6章 线程基础.cpp: 定义应用程序的入口点. // #include ...
- [Git01]Pro Git 第三章 分支 读书笔记
[git]分支 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来. Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在 ...
- 第七章 : Git 介绍 (上)[Learn Android Studio 汉化教程]
Learn Android Studio 汉化教程 [翻译]Git介绍 Git版本控制系统(VCS)快速成为Android应用程序开发以及常规的软件编程领域内的事实标准.有别于需要中心服务器支持的早期 ...
- Java开发工程师(Web方向) - 01.Java Web开发入门 - 第5章.Git
第5章--Git 版本控制简介 VCS (version control system) 版本控制系统:记录若干文件的修订记录的系统,帮助查阅/回到某个历史版本 LVCS本地 CVCS集中式(Cent ...
- git的简单理解及基础操作命令
前端小白一枚,最近开始使用git,于是花了2天看了廖雪峰的git教程(偏实践,对于学习git的基础操作很有帮助哦),也在看<git版本控制管理>这本书(偏理论,内容完善,很不错),针对所学 ...
- 第三章 Git的入门 - 读书笔记
Android驱动月考3 第三章 Git的入门 - 读书笔记 对于Github,这是全世界最大的开源平台,你可以把你做的项目在这里开源,把你发现的一些新技术在这里开源,向全世界的开发者们分享,大家都彼 ...
- 第一章 git指令与设置
相关指令: 1.从远程的master分支上创建新的分支,此时新分支内容与master分支内容相同: git checkout master; git branch newbranch; git che ...
- 【git学习二】git基础之git管理本地项目
1.背景 git基础打算分两部分来说,一部分是对于本地项目的管理,第二部分是对于远程代码仓库的操作. git运行本地项目管理包含对于相关文件的追踪,暂存区的比較分析,提交,撤销等功能. ...
随机推荐
- (推荐JsonConvert )序列化和反序列化Json
在Json文本和.Net对象之间转换最快的方法是试用JsonSerializer. JsonSerializer通过将.Net对象属性名称映射到Json属性名称,并为其复制值,将.Net对象转换为其J ...
- ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
今天第一次遇到Failed to start component [StandardEngine[Catalina].StandardHost[localhost].错误,并且在错误提示的后半段出现了 ...
- AndroidManifest.xml文件详解(activity)(一)
<activity android:allowTaskReparenting=["true" | "false"] android:alwaysRetai ...
- 基于kubernetes集群的Vitess最佳实践
概要 本文主要说明基于kubernetes集群部署并使用Vitess; 本文假定用户已经具备了kubernetes集群使用环境,如果不具备请先参阅基于minikube的kubernetes集群搭建, ...
- Advanced Bash-Scripting Guide(学习笔记)
http://www.tldp.org/LDP/abs/html/index.html 11.1. Loops tp://www.tldp.org/LDP/abs/html/loops1. ...
- 并发测试 java.lang.OutOfMemoryError: GC overhead limit exceeded Xms Xmx 阻塞请求 单节点 请求分发 负载均衡
at javax.servlet.http.HttpServlet.service(HttpServlet.java:705) at javax.servlet.http.HttpServlet.se ...
- Spring Mvc4 新特性(一)
前言 Spring Framework的Web层,由spring-web,spring-webmvc,spring-websocket和spring-webmvc-portlet模块组成. 很多人刚学 ...
- delphi inifile 支持 utf8
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 3 ...
- 【转】如约而至:微信自用的移动端IM网络层跨平台组件库Mars已正式开源
网上看到关于微信官方的跨平台跨业务的终端基础组件Mars的介绍文章,转载这这里.源代码: https://github.com/Tencent/mars作者:男人链接:https://zhuanlan ...
- 我的Android进阶之旅------>关于使用CSDN-markdown编辑器来编写博客
关于使用MarkDown编辑器的原因 什么是 Markdown 制作一份待办事宜 Todo 列表 书写一个质能守恒公式LaTeX 高亮一段代码code 高效绘制 流程图 高效绘制序列图 绘制表格 更详 ...