博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git介绍和常用指令
阅读量:5237 次
发布时间:2019-06-14

本文共 2824 字,大约阅读时间需要 9 分钟。

Git介绍和常用指令

介绍:Git和SVN一样都是版本控制工具。不同的是Git是分布式的,SVN是集中式的。Git开始用可能感觉难点,等你用习惯了你就会觉得svn是有点恐怖。(如果一个项目有好多人一起开发,有好多分支切来切去,如果用SVN就会让你崩溃的)集中式大概就是有一个中心代码库,大家改完代码以后都忘这个代码库提交,同样都在这里更新代码。

分布式就是没有中心数据库每个人的电脑上都有一个完整的本本库,大家可以相互推送代码和更新(为了方便也会建立一个中心库,大家都通这个中心库进行交互)。

安装git:从git官网下载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 (这里是github上我的仓库地址)然后更新合并代码。

也可以克隆远程仓库到本地:跳转到相应目录执行git clone 。这时候查看仓库可以看到 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这个帮主指令。

转载于:https://www.cnblogs.com/xucheng/p/git.html

你可能感兴趣的文章
RabbitMQ、Redis、Memcache、SQLAlchemy
查看>>
知识不是来炫耀的,而是来分享的-----现在的人们却…似乎开始变味了…
查看>>
口胡:[HNOI2011]数学作业
查看>>
数据库锁机制及乐观锁,悲观锁的并发控制
查看>>
03 线程池
查看>>
手机验证码执行流程
查看>>
设计模式课程 设计模式精讲 2-2 UML类图讲解
查看>>
Silverlight 的菜单控件。(不是 Toolkit的)
查看>>
初识lua
查看>>
我是插件狂人,jDuang,jValidator,jModal,jGallery
查看>>
jquery的contains方法
查看>>
linux后台运行和关闭SSH运行,查看后台任务
查看>>
cookies相关概念
查看>>
CAN总线波形中ACK位电平为什么会偏高?
查看>>
MyBatis课程2
查看>>
桥接模式-Bridge(Java实现)
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>