Pro Git读书笔记 - Git 常用命令
在工作目录中初始化新仓库
要对现有的某个项目开始用 Git 管理,只需到此项目所在的目录,执行git init
检查当前文件状态
要查看哪些文件处于什么状态,可以用git status命令
将工作文件修改提交到本地暂存区
通过git add <file>可以将文件提交到本地暂存区,如果你git add a.txt之后修改了a.txt的内容,则你需要再次git add a.txt,否则本地暂存区保存的是修改前的a.txt
忽略文件
一般我们总会有些文件无需纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。 通常都是些自动生成的文件,比如日志文件,或者编译过程中创建的临时文件等。 在这种情况下,我们可以创建一个名为 .gitignore的文件,列出要忽略的文件。
.gitignore 的格式规范如下:
- 所有空行或者以 # 开头的行都会被 Git 忽略
- 可以使用标准的 glob 模式匹配
- 匹配模式可以以(/)开头防止递归
- 匹配模式可以以(/)结尾指定目录
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反
查看文件diff
实际上git status的显示比较简单,仅仅是列出了修改过的文件,如果要查看具体修改了什么地方,可以用git diff命令,用法如下
git diff <file> # 比较当前文件和暂存区文件差异
git diff
git diff <$id1> <$id2> # 比较两次提交之间的差异
git diff <branch1>..<branch2> # 在两个分支之间比较
git diff --staged # 比较暂存区和版本库差异
git diff --cached # 比较暂存区和版本库差异
git diff --stat # 仅仅比较统计信息
提交更新
在git commit之前,请一定要确认还有什么修改过的或新建的文件还没有git add过,否则提交的时候不会记录这些还没暂存起来的变化。所以,每次准备提交前,先用git status看下,是不是都已暂存起来了,然后再运行提交命令git commit
git commit这种方式会启动文本编辑器以便输入本次提交的说明。(默认会启用 shell 的环境变量 $EDITOR 所指定的软件,一般都是 vim 或 emacs。当然也可以按照第一章介绍的方式,使用 git config --global core.editor 命令设定你喜欢的编辑软件。)你可以是用git commit -m "this is message"这种方式
移除文件
要从 Git 中移除某个文件,就必须要从已跟踪文件清单中移除(确切地说,是从暂存区域移除),然后提交。可以用git rm <file>命令完成此项工作,并连带从工作目录中删除指定的文件,这样以后就不会出现在未跟踪文件清单中了。如果只是想将文件从暂存区中移除但工作目录不移除可以用命令git rm --cached <file>
修改文件名字
通过命令git mv <file_from> <file_to>可以对文件进行改名
查看提交历史
在提交了若干更新之后,又或者克隆了某个项目,想回顾下提交历史,可以使用git log命令查看。
git log的其他使用方法如下
git log <file># 查看该文件每次提交记录git log -p <file># 查看每次详细修改内容的diffgit log -p -2# 查看最近两次详细修改内容的diffgit log --stat# 查看提交统计信息
修改最后一次提交
有时候我们提交完了才发现漏掉了几个文件没有加,或者提交信息写错了。想要撤消刚才的提交操作,可以使用git commit --amend重新提交,如
git commit -m 'initial commit'
git add forgotten_file
git commit --amend
上面的三条命令最终只是产生一个提交,第二个提交命令修正了第一个的提交内容。
取消已经暂存的文件
如果有两个修改过的文件,我们想要分开提交,但不小心用 git add . 全加到了暂存区域,这时候可以用命令git reset HEAD <file>取消暂存
查看当前的远程库
要查看当前配置有哪些远程仓库,可以用git remote命令,可以加上-v选项(--verbose的简写),显示对应的克隆地址
添加远程仓库
添加一个新的远程仓库,可以指定一个简单的名字,以便将来引用,运行git remote add [shortname] [url]
从远程仓库抓取数据
使用命令git fetch [remote-name]可以从远程仓库抓取数据到本地
推送数据到远程仓库
项目进行到一个阶段,要同别人分享目前的成果,可以将本地仓库中的数据推送到远程仓库。实现这个任务的命令很简单:git push [remote-name] [branch-name]。如果要把本地的 master 分支推送到 origin 服务器上(再次说明下,克隆操作会自动使用默认的 master 和 origin 名字),可以运行命令git push origin master
查看远程仓库信息
使用命令git remote show [remote-name]查看某个远程仓库的详细信息
远程仓库的删除和重命名
在新版 Git 中可以用 git remote rename 命令修改某个远程仓库在本地的简称,比如想把 pb 改成 paul,可以这么运行git remote rename pb paul
碰到远端仓库服务器迁移,或者原来的克隆镜像不再使用,又或者某个参与者不再贡献代码,那么需要移除对应的远端仓库,可以运行git remote rm命令,如git remote rm paul
远程拉取分支代码
git fetch [remote-name] [branch-name]
Pro Git读书笔记 - Git 常用命令的更多相关文章
- git学习笔记:常用命令总结
本文根据廖雪峰的博客,记录下自己的学习笔记.主要记录常用的命令,包括仓库初始化.添加文件.提交修改.新建分支.内容暂存.分支管理.标签管理等内容. git是分布式版本控制系统. 首先是安装,从官网下载 ...
- 图解git中的最常用命令
图解git中的最常用命令 Git命令参考手册(文本版) git init # 初始化本地git仓库(创 ...
- git日常使用的常用命令总结
git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- Pro Git读书笔记 - 分支
Git 分支介绍. 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程--常常需要完全创 ...
- Git-学习笔记(常用命令集合)
这里引用一下百度百科里Git的内容: Git --- The stupid content tracker, 傻瓜内容跟踪器.Linus Torvalds 是这样给我们介绍 Git 的. Git 是用 ...
- pro git 读书笔记 2
Git 2 - Git Basics 1 add github 上建立新的 repository,命名 demo git clone 到本地 github 目录 将自己之前的项目 copy 到该 de ...
- Pro Git 读书笔记
一. 起步 1. 集中式版本控制缺点:中央服务器的单点故障. 分布式版本控制优点:客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来. 这么一来,任何一处协同工作用的服务器发生故障,事后 ...
- Git学习笔记--Git常用命令
参考资料: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000 mkdir myfir ...
随机推荐
- web移动端一些常用知识
1.去掉 a,input 在移动端浏览器中的默认样式(半透明灰色遮罩阴影) a,button,input,optgroup,select,textarea { -webkit-tap-highligh ...
- Unity3D笔记十二 游戏元素二之摄像机
一.摄像机 摄像头用以捕捉和显示的世界给玩家.通过自定义和操纵相机,你可以让你的游戏的呈现真正独一无二的.您可以在一个场景无限数量的摄像机.它们可以设置在任何顺序呈现在屏幕上的任何地方,或者屏幕的某些 ...
- Floyd求字典序最小的路径
hdu1384 Minimum Transport Cost Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K ...
- 170602、防止sql注入(一)
一.SQL注入简介 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库. 二.SQL注入攻击的总体 ...
- Cisco设备开启telnet登录
思科设备怎么开启telnet登录 configuration line vty 0 4SW1(config-line)#transp input telne
- IIS与ASP.NET中的线程池
1. W3 Thread Pool(W3TP) 当处于内核模式的http.sys接收到来自用户的请求之后,会将请求放入队列中.那处于用户模式的w3wp进程如何从内核模式的队列中取出请求呢?I/O完成端 ...
- 字符串函数---atof()函数详解
atof()函数 atof(),是C 语言标准库中的一个字符串处理函数,功能是把字符串转换成浮点数,所使用的头文件为<stdlib.h>.该函数名是 “ascii to floating ...
- Systemd unit generators unit
systemd.generator(7) - Linux manual page http://man7.org/linux/man-pages/man7/systemd.generator.7.ht ...
- Django - rest - framework - 下
一.视图三部曲 https://www.cnblogs.com/wupeiqi/articles/7805382.html 使用混合(mixins) 之前得视图部分 # urls.py from dj ...
- busybox,alphine,ubuntu,centos/fedore操作系统
在docker 中搜索busybox docker search busybox 之后我们运行一下这个系统 Alpine操作系统 3.ubuntu 之前一直都安装过,这里不再多叙述 当时用apt- ...