热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Git的使用说明

一,Git代码状态转换图其中:未被Git跟踪的状态为unstage状态已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态untrackfiles是指尚未

一,Git代码状态转换图


其中:未被Git跟踪的状态为unstage状态
      已经被Git跟踪的状态为stage状态,因此包括staging状态和staged状态
untrack files是指尚未被git所管理的文件;changed but not updated是指文件被git管理,并且发生了改变,但改动还没被git管理;这两种状态,都可以看成是改动还没被git管理的状态,我们这里称非stage状态。
changes to be commited是指进入stage状态的文件,stage是commit和未管理之间的一个状态,也有别名叫index状态,也就是git已经管理了这些改动,但是还没完成提交。
.gitignore中的文件,不会出现在以上三个状态中。

二,git的个人本地使用及操作
 
1,  创建Git库
cd 源码目录
git init    #初始化  在源码目录内生成一个.git的目录
 
2,  注册用户信息
git config --global user.name XXX    用户名
git config --global user.email XXX    用户邮箱
git config –list              #查看用户信息
 
3,  向git库中添加或删除文件
git add XX                #加单个文件
git add .                  #加所有
git add [path]会把对应目录或文件,添加到stage状态
    git add . 会把当前所有的untrack files和changed but not updated添加到stage状态
 
4,  向版本库提交变化
git commit –m “XXXX”     #直接添加简单提交信息,添加注释
git status                  #查看当前代码库的状态
git log                    #查看版本信息
git log –p                                   #查看版本信息并显示每次修改的diff
git show sdjf974654dd….    #查看指定版本信息
                                           #(show后面为每次提交系统自动生成的一串哈希值)
git show sdji97             #一般只使用版本号的前几个字符即可
 
5,  撤销与恢复
git reset
git reset --hard              #回到原来编辑的地方,改动会丢失。
#(同样适用于团队对于其他人的修改恢复)
       git reset --hard sdv143kvf…...  #可回到指定的版本
#(hard后面为每次提交系统自动生成的一串哈希值)
     
git reset [path] 会改变path指定的文件或目录的stage状态,到非stage状
    git reset 会将所有stage的文件状态,都改变成非stage状
 
回退1个change的写法就是git reset HEAD^,2个为HEAD^^,3个为HEAD~3,以此类推。
 
6,  向服务器提交变化
git push                   #向服务器提交
 
7, 暂存改动
git stash可以把当前的改动(stage和unstage,但不包括untrack的文件)暂存。然后通过git stash list查看。并通过git stash apply重新取出来。但apply之前要保证worktree是干净的。
 
三,git的团队开发及操作
1,  获取项目
cd 本地工作目录(自定)
git clone 服务器帐户@IP:项目.根路经
这里具体操作为:
git clone git@192.168.20.22:android2.2.git
 
说明:这里假定服务器的用户名为git,服务器IP为192.168.20.22,项目名为android2.2,根路经为git的home(即根路径)
2,  团队开发的基本流程
git add 改动的文件
git  commit  #(提交至本地)
git  pull     #(将服务器项目与本地项目合并)
git  push    #(将本地项目上传至服务器)(在提交前要git  pull  --rebase一下,确保当前的本地的代码为最新。)
 
四,git的分支管理
git分支操作在本地建立分支,然后与本地主枝合并,最终提交到服务器。有效的避免了因个人操作不当向服务器提交过多脏数据,避免频繁git clone服务器来更新本地库。
分支操作指令:
1,  建立分支
git branch AAA     #建立分支AAA
2,分支切换
git checkout AAA    #从当前分支切换到AAA分支
3,  将分支与主枝master合并
git checkout master     #(首先切换回主枝)
git merge AAA         #(将分支AAA与主枝合并)
4,  当前分支查看
git  branch            #默认有master(也称为主枝)
git  branch –a 查看当前所有分支
5,  删除分支
git branch –d  AAA     #删除分支AAA
 
 
 
备注:上面只是一些基本的操作命令,更多的命令可通过帮助文档查询。
         帮助文档的使用:
man git-<需查询的指令>      #(git后面有“-”)
         如commit的查询为  man git-commit
删除分支 ; 如果你要删除的分支并没有被merge到当前分支的话,将产生一个错误提示。


推荐阅读
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 关于我们EMQ是一家全球领先的开源物联网基础设施软件供应商,服务新产业周期的IoT&5G、边缘计算与云计算市场,交付全球领先的开源物联网消息服务器和流处理数据 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了在git中如何对指定的commit id打标签,并解决了忘记打标签的问题。通过查找历史提交的commit id,可以在任意时间点打上标签。同时,还介绍了git中的一些常用命令和操作。 ... [详细]
  • 【MicroServices】【Arduino】装修甲醛检测,ArduinoDart甲醛、PM2.5、温湿度、光照传感器等,数据记录于SD卡,Python数据显示,UI5前台,微服务后台……
    这篇文章介绍了一个基于Arduino的装修甲醛检测项目,使用了ArduinoDart甲醛、PM2.5、温湿度、光照传感器等硬件,并将数据记录于SD卡,使用Python进行数据显示,使用UI5进行前台设计,使用微服务进行后台开发。该项目还在不断更新中,有兴趣的可以关注作者的博客和GitHub。 ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 本文介绍了在Python中检查字符串是否为字母、数字或空白字符的几种方法,包括使用str.isalnum()、str.isalpha()、str.isdigit()和str.isspace()等函数进行判断。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
author-avatar
雅丽猫儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有