git介绍和常用指令
Git介绍和常用指令
介绍:Git和SVN一样都是版本控制工具。不同的是Git是分布式的,SVN是集中式的。Git开始用可能感觉难点,等你用习惯了你就会觉得svn是有点恐怖。(如果一个项目有好多人一起开发,有好多分支切来切去,如果用SVN就会让你崩溃的)集中式大概就是有一个中心代码库,大家改完代码以后都忘这个代码库提交,同样都在这里更新代码。
分布式就是没有中心数据库每个人的电脑上都有一个完整的本本库,大家可以相互推送代码和更新(为了方便也会建立一个中心库,大家都通这个中心库进行交互)。
安装git:从git官网http://git-scm.com/download/下载git。选择命令行模式,然后基本上next 就行了。
介绍下git的常用概念:
本地仓库:在本地存放各个版本分支的地方,像一个仓库,只要你提交的东西他都会保存下来。
远程仓库:可以和你本地仓库进行交互的另一仓库。可以是别人的仓库也可以是大家都用的一个中心的仓库。
工作区:就是我们看到的当前分支和版本的代码的区域,就是存放我们当前正在修改的代码的地方。
索引区:存放已经在git管理中的代码的区域,通过提交指令添加到仓库。
常用指令:
1、 关于仓库:
查看远程仓库:git remote –v (-v表示显示详细信息)显示为仓库别名和仓库地址,远程仓库的默认别名为origin。
添加远程仓库:git remote add {url}
重命名:git rename {oldname} {newname}
删除:git rm {remotename}
剩下的就自己查看帮助吧:git remote –help
初始化本地仓库:到你想作为仓库的路径,然后执行git init。就会发现在当前目录下多了个.git目录。发现git自动显示在maser分支上。然后添加一个远程仓库git remote add origin https://github.com/tomdogxu/firstWebProject.git(这里是github上我的仓库地址)然后更新合并代码。
也可以克隆远程仓库到本地:跳转到相应目录执行git clone https://github.com/tomdogxu/firstWebProject.git。这时候查看仓库可以看到 origin仓库。
2、 查看状态:查看当前工作的状态 git status显示如下图:
其中标注为Changes to be committed:的绿色显示部分是已经add到索引区的修改,提示我们可以用git reset撤销。
标注为Changes not staged for commit:的是修改过没有添加到索引区的,提示我们可以通过git add添加到索引区或者通过git checkout 重置已经修改的文件。标注为Untracked files:是不在git的检查中的文件比如新建的文件。可以add添加到索引区。
3、将改变添加到索引区:git add [path]
4、比较不同: git diff [path],是比较工作区间与索引区的不同,当有参数—catch的时候就是比较索引区与仓库的不同,当有参数 commitid的时候就是比较工作区间与仓库指定版本的不同。例子:git diff --cached 索引区与仓库的不同,
git diff HEAD工作区间与仓库间的不同。
git diff commitid 工作区间与仓库指定版本号的间不同。
git diff --cached HEAD^ 索引区与上一次提交的不同。
git diff commitid1 commitid2 仓库指定两个id的版本之间的不同。
git diff branch1 branch2 比较两个分支间不同 (--stat参数列举简单信息)
git diff branch1:path branch2:path 比较两个分支间指定文件的不同
git diff master.. origin/master 比较本地master 和远程master的区别。
5、撤销:git reset [--hard|soft|mixed|merge|keep] [<commit>或HEAD] 这个指令有四中模式,
先说—mixed模式,因为他是默认模式,是最常用的模式,就是当用git reset –mixed [path]就是说将索引区的文件重置,撤销add的指令。
git reset –hard commitid,回滚到指定版本号,并且重置工作区间和索引区,就是说在某个版本号之后的修改都会丢弃,而且是找不回来的。
git reset –soft commitid 将当前版本指向指定版本号,这个版本号之后的提交都会被撤销到索引区,工作区和索引区的不变。
git rm --cached 文件名:将文件从索引中删除变成Untracked 。
--merge和--keep用的不多。
git revert 也是撤销命令,区别在于reset是指向原地或者向前移动指针,git revert是创建一个commit来覆盖当前的commit,指针向后移动,就是不是真的撤销而是有一次提交得到撤销的效果。
6、关于分支指令:git branch +[branchname]新建分支,
git checkout [branchname] 切换到相应分支,
git checkout –b [branchname] 创建并切换到新的分支。
切换到别的分支之后执行git branch –d [branchname]删除分支
git branch 查看分支,
git branch –a 或者(git branch --remote)查看远程分支
git marge [branchname]合并指定分支到当前分支。
git fetch [remotename]更新远程仓库的分支,可以指定分支名或者更新全部,括号内为远程分支的别名。
git pull [remotename] [ branchname] 更新并合并远程分支,默认是origin仓库的master分支。
git push [remotename] [ branchname]将本地仓库的更改推送到远程分支,可以使用-u参数指定默认的推送的分支,之后就可以直接使用git push指令推送。
git branch [remotename] –delete [branchname]删除远程分支
git branch –d [branchname]删除本地分支。
7、查看日志:git log
git log -p 显示详细信息,git log 路径 显示该路径下的日志 ,git log --no-merges 不显示合并版本的信息,git log --since="2 weeks ago" 显示最近两周的日志
8、其他关于设置全局变量等指令使用较少不做介绍,可以按提示操作即可。并且要学会多使用—help这个帮主指令。
git介绍和常用指令的更多相关文章
- Git介绍及常用操作演示(一)--技术流ken
Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...
- CI 知识 :Git介绍及常用操作
Git介绍 Git(读音为/gɪt/.)是一个开源的分布式版本控制系统,可以有效.高速的处理从很小到非常大的项目版本管理. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发 ...
- vue.js介绍,常用指令,事件,以及制作简易留言版
一.vue是什么? 一个mvvm框架(库).和angular类似,比较容易上手.小巧,让我们的代码更加专注于业务逻辑,而不是去关注DOM操作 二.vue和angular之间的区别 vue--简单易学 ...
- 一文搞定 Git 相关概念和常用指令
我几乎每天都使用 Git,但仍然无法记住很多命令. 通常,只需要记住下图中的 6 个命令就足以供日常使用.但是,为了确保使用地很顺滑,其实你应该记住 60 到 100 个命令. Git 相关术语 Gi ...
- git中的常用指令名及其意义
add 添加新文件到 Git 代码仓库的索引中 $ git add filename mv 移动或重命名文件 $ git mv old-filename new-filename rm 从工作目录和 ...
- Git笔记:Git介绍和常用命令汇总
Git 是一个开源的分布式版本控制系统,与 CVS, Subversion 等不同,它采用了分布式版本库的方式,不需要服务器端软件支持. 工作流程 Git 的工作流程大致如下: 克隆 Git 资源作为 ...
- git介绍及常用命令
Git简介 linus 用C语言编写 2005年诞生 分布式版本管理系统 速度快,适合大规模,跨地区多人协同开发 分布式管理 Git 生态 Git 分布式版本管理系统 Gitlab git私库解决方案 ...
- git介绍以及常用命令操作
一.git与SVN的对比[面试] ①git是分布式的,SVN是集中式的(最核心) ②git是每个历史版本都存储完整的文件,便于恢复,SVN是存储差异文件,历史版本不可恢复(核心) ③git可离线完成大 ...
- git介绍和常用命令总结
git中经常用的命令就是以下六个: 以下是命令总结: 另外,自己碰到的问题及解决方法: 在分支内提交远程仓库,-am: revert后进入vim,一直按住esc ,再连续按大写的z两次就退出来了: g ...
随机推荐
- iOS网络编程--ASIHTTPRequest框架安装和配置-图文解说
ASIHTTPRequest框架是优秀的第三方Objective-C的HTTP框架,支持Mac OS X和iOS下的HTTP开发.技术支持网站是http://allseeing-i.com/ASIHT ...
- tshop-pbsm-shop-nav-ch结构和样式分析
html结构 <div id="content" class="eshop head-expand tb-shop"> <div id=&qu ...
- mac mysql命令行
https://www.cnblogs.com/lonecloud/p/5841522.html mac下使用mysql控制台命令行 命令行中输入 open .bash_profile 然后将 a ...
- Hive图形化界面客户端
通过JDBC连接HiveServer2的图形界面工具,包括:SQuirrel SQL Client.Oracle SQL Developer以及DbVisualizer SQuirrel SQL Cl ...
- 2017.7.27 logback配置文件
参考来自: Java深入 - logback的配置和使用 1 模块组成 logback分成三个模块:logback-core,logback- classic和logback-access. logb ...
- [PWA] Cache Third Party Resources from a CDN in a React PWA
Our service worker caches our static assets - but only those assets that are included in our React A ...
- Java 调用存储过程、函数
一.Java调用存储Oracle存储过程 测试用表: --创建用户表 create table USERINFO ( username ) not null, password ) not null ...
- 15款Java程序员必备的开发工具
如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同的观点:一种认为Java是最简单功能 ...
- nonlocal(非局部变量)---python 3.x 新增关健词
Python里只有2种作用域:全局作用域和局部作用域.全局作用域是指当前代码所在模块的作用域,局部作用域是指当前函数或方法所在的作用域.其实准确来说,Python 3.x引入了nonlocal关键字, ...
- 怎样在QML应用中调用系统设置中的页面来设置我们的系统
我们在QML应用中有时须要调用系统设置(system settings)来完毕我们的一些设置.比方,我们在使用GPS来定位时,可能GPS并没有打开,假设在我们的应用中直接打开系统中的GPS设置页面,这 ...