Git 基本概念及常用命令
一、基本概念
- 文件的三种状态:(任何一个文件在
git
中都有以下三种状态)
1) 已提交(committed
):表示该文件已经被安全地保存在本地数据库中了。
2) 已修改(modified
):表示修改了某个文件,但还没有提交保存。
3) 已暂存(staged
):表示把已修改的文件放在下次提交时要保存的清单中。 - 基本的
Git
工作流程如下:
1) 在工作目录中修改某些文件。
2) 对修改后的文件进行快照,然后保存到暂存区域。
3) 提交更新,将保存在暂存区域的文件快照永久转储到Git
目录(项目中.git
目录)中。
二、常用命令
1. Git
相关配置:
1)用户信息配置
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com
- 每次
Git
提交都会引用以上两条信息,说明谁提交了更新。
2)文本编辑器
$ git config --global core.editor emacs
- 一般默认是
vi/vim
,可以通过以上命令自己指定。
3)差异分析工具
$ git config --global merge.tool vimdiff
Git
可以理解kdiff3
,tkdiff
,meld
,xxdiff
,emerge
,vimdiff
,gvimdiff
,ecmerge
,和opendiff
等合并工具的输出信息。
4)查看配置信息
$ git config --list
通过该命令查看所有配置信息。
5)查看某个配置变量
$ git config user.name
2. 帮助相关
$ git help <verb>
$ git <verb> --help
3. Git
仓库初始化
1) 新建git
本地仓库: 将已有项目添加给git
管理。
$ git init
$ git commit -m 'initial project version'
2) 拷贝远程git
仓库: 将远程仓库的全部内容(各个文件的各个版本)拷贝到本地。
$ git clone url [new dir name]
4. 记录每次更新到仓库
1)检查当前文件状态(tracked or not tracked
)
#####所有文件都为tracked状态#####
$ git status
On branch master
nothing to commit, working directory clean
2)跟踪新文件(将untracked
变为tracked
)或暂存已修改文件
$ git add filename
3)忽略某些文件:有些文件不想由git
管理,如一些日志文件,可以通过设置.gitignore
文件指定哪些文件被忽略。
$ cat .gitignore
*.[oa] //忽略.o 或.a 结尾的文件
*~ //忽略以~ 结尾的文件
4)查看未暂存的文件更新了哪些部分
$ git diff
5)查看已暂存文件和上次提交时快照之间的差异,查看已经暂存起来的变化
$ git diff --cached
$ git diff --staged //较高版本
6)提交更新
$ git commit
$ git commit -v //将修改差异的每一行都包含在更新说明中
$ git commit -m "comments" //将提交说明加在命令后面
$ git commit -a //将所有已经跟踪过的文件暂存起来提交
7)从已跟踪文件清单中移除
$ git rm filename
8)文件改名
$ git mv file_from file_to
实际上是完成了下面三个命令
$ mv README.txt README
$ git rm README.txt
$ git add README
9)查看提交历史
$ git log
有一些参数可以设置。
5. 远程仓库相关
1)添加远程仓库
$ git remote add [short name] [url]
以后可使用short name
来指代url
作为简称。
2)从远程仓库抓取数据到本地
$ git fetch [remote name]
#不会自动合并(Merge)远端分支和本地仓库,从远程获取最新版本到本地
$ git pull [remote name]
#从远端分支拉取数据至本地仓库并与本地分支合并。
$ git clone [remote name]
#自动创建本地master分支用于跟踪远程仓库的master分支
3)推送数据到远程仓库
$ git push [remote-name] [branch-name]
#只有在远程仓库有写权限,并且同一时刻没有其他人在推数据,该操作才能成功。
4)查看远程仓库信息
$ git remote show [remote name]
5)远程仓库的删除和重命名
$ git remote rename [原名] [新名]
#重命名远程仓库
$ git remote rm [name]
#删除远程仓库。远程仓库服务器迁移,原来的克隆镜像不再使用,或者某个参与者不再贡献代码,就需要移除相应的远程仓库
6)查看提交历史
git log --pretty=oneline
6. 分支相关
理解分支就要理解几个基本概念:Commit
对象,暂存内容快照和暂存区域。
Git
中的分支本质上仅是指向commit
对象的可变指针。Git会使用matser作为分支的默认名字。
注:master是分支默认名;中间层是Commit对象,里面存储指向暂存内容快照的指针以及一些commit相关的元信息,同时指向上次的Commit对象;Snapshot是暂存内容快照。
1)创建新的分支
$ git branch testing
#创建了另一个分支名为testing,指向当前分支Commit对象f30ab。
2)进入某个分支工作
$ git checkout testing
#由当前matser分支切换到testing分支。由特别指针HEAD从matser指向testing指明我们切换到了testing分支。
$ git checkout -b iss53
#创建了分支并切换到iss53分支下工作。
相当于:
$ git branch iss53
$ git checkout iss53
下图展示了向不同分支方向开发。
3)分支的合并
$ git checkout master#进入某个分支
$ git merge iss53 #将master分支和iss53分支进行合并
4)关闭分支
$ git branch -d iss53 #合并之后也就不用iss53这个分支了,即可关闭这个分支。
5)查看分支情况
$ git log --oneline --decorate --graph --all
7. 标签相关
1)查看标签
$ git tag
2)打本地标签
$ git tag -a "v0.0.1.1"
3) 将标签推送到远程仓库
$ git push origin "v0.0.1.1"
$ git push origin --tags #把所有不在远程仓库服务器上的标签全部传送到那里
4)删除本地标签
$ git tag -d "v0.0.1.1"
5)删除标签同步到远程仓库
$ git push origin :refs/tags/v0.0.1.1
6)后补标签
$ git tag -a v1.1 部分校验和(gitlog中码的前7位)
7)查看具体tag信息
$ git show v1.1
8)检出标签
git checkout -b [branchname] [tagname]
Git 基本概念及常用命令的更多相关文章
- Git的概念及常用命令
一.概念 Git是一个分布式的版本控制工具,区别于集中式管理的SVN. 二.优势 每个开发者都拥有自己的本地版本库,可以在本地任意修改代码.创建分支,不会影响到其他开发者的使用: 所有版本信息均保存在 ...
- composer 基本概念与常用命令总结
目录 composer 基本概念与常用命令总结 基本概念 软件安装 linux/mac安装 windows 配置镜像 如何使用 常用命令 全局参数 初始化 init 初始化参数 依赖安装 instal ...
- Linux的几个概念,常用命令学习
Linux的几个概念,常用命令学习---------------------------------设备名装载点// 通过装载点访问设备-------------------------------- ...
- 图解git中的最常用命令
图解git中的最常用命令 Git命令参考手册(文本版) git init # 初始化本地git仓库(创 ...
- git日常使用的常用命令总结
git日常使用的常用命令总结 git 是什么? Git是目前世界上最先进的分布式版本控制系统(没有之一). Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常 ...
- Git快速入门和常用命令
一.快速入门 本地初始化一个项目 首先,你需要执行下面两条命令,作为 git 的基础配置,作用是告诉 git 你是谁,你输入的信息将出现在你创建的提交中. git config --global us ...
- git安装用法和常用命令
目录 git 下载 安装 git 工作中常用命令 Git常用命令汇总以及其它相关操作 或者 常出错误: 常用修改: 题外话(相关概念) git 下载 安装 1.下载Git,官网地址:https://g ...
- git 快速入门及常用命令
身为技术人员,都知道Git是干嘛的.从服务端角度它是代码仓库,可以多人协作.版本控制.高效处理大型或小型项目所有内容:从客户端讲,它能够方便管理本地分支.且与服务端代码的同步,从拉取.合并.提交等等管 ...
- 版本控制-Git服务器搭建和常用命令使用
Git是目前世界上最先进的分布式版本控制系统(没有之一).使用Svn的请参考<版本控制-svn服务器搭建和常用命令(centos 6.3)>,下面介绍Git的常用命令 常用命令 简单版 升 ...
随机推荐
- CSS3使用Font Awesome字体图标的控件样例(按钮,工具栏,输入框)
按钮上加入font awesome图标,用原生的input button标签无法实现,查看网上的只能通过<a><li></li></a>实现此功能,通过 ...
- 在JaveWeb项目中配置Spring 匿名访问时,匹配规则的变相实现/*
实现/* /** * 根据当前的URL返回该url的角色集合. * 1.如果当前的URL在匿名访问的URL集合当中时,在当前的角色中添加匿名访问的角色(SysRole.ROLE_CONFIG_ANON ...
- MarkdownPad 2 在win10下出错:HTML 渲染错误(This view has crashed) 的解决办法 + MarkdownPad2.5 注册码
首先附上MarkdownPad2.5的注册码. 邮箱:Soar360@live.com 授权密钥: GBPduHjWfJU1mZqcPM3BikjYKF6xKhlKIys3i1MU2eJHqWGImD ...
- Java Native Interface 六JNI中的异常
本文是<The Java Native Interface Programmer's Guide and Specification>读书笔记 在这里只讨论调用JNI方法可能会出现的异常, ...
- 项目vue2.0仿外卖APP(二)
vue-cli开启vue.js项目 github地址:https://github.com/vuejs/vue-cli Vue.js开发利器vue-cli,是vue的脚手架工具. 在工地上,脚手架是工 ...
- (转)System.Drawing.Color的颜色对照表
经常使用System.Drawing.Color, 本篇介绍一下颜色与名称及RGB值的对应关系. 1. 颜色与名称的对照表(点击下图放大看): 2. 颜色与RGB值对照表: Color.AliceBl ...
- angularjs 中的setTimeout(),setInterval() / $interval 和 $timeout
$interval window.setInterval的Angular包装形式.Fn是每次延迟时间后被执行的函数. 间隔函数的返回值是一个承诺.这个承诺将在每个间隔刻度被通知,并且到达规定迭代次数后 ...
- javadoc生成出现错误“编码 GBK 的不可映射字符”
https://my.oschina.net/tiancai/blog/155299 http://heweina2007.iteye.com/blog/1561387 http://blog.csd ...
- C# Mvc异常处理过滤器
using System; using System.Text; using EMS.Domains.Core; using System.Web.Mvc; using Json.Net; using ...
- PLSQL note
sql%count 最近一次sql执行的件数SUBSTR(string , int i) // i番目から最後までの文字列を切り取るSUBSTR(string , int i, int j) // i ...